Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting
CREATE USER
Erstellt einen neuen Datenbankbenutzer. Je nach Berechtigungen und Rollen können Datenbankbenutzer Daten abrufen, Befehle ausführen und andere Aktionen in einer Datenbank ausführen. Sie müssen Datenbank-Superuser sein, um diesen Befehl auszuführen.
Erforderliche Berechtigungen
Für CREATE USER sind folgende Berechtigungen erforderlich:
-
Superuser
-
Benutzer mit der Berechtigung CREATE USER
Syntax
CREATE USER name [ WITH ] PASSWORD { 'password' | 'md5hash' | 'sha256hash' | DISABLE } [ option [ ... ] ] where option can be: CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | SYSLOG ACCESS { RESTRICTED | UNRESTRICTED } | IN GROUP groupname [, ... ] | VALID UNTIL 'abstime' | CONNECTION LIMIT { limit | UNLIMITED } | SESSION TIMEOUT limit | EXTERNALID external_id
Parameter
- Name
-
Der Name des zu erstellenden Benutzers. Der Benutzername darf nicht sein
PUBLIC. Weitere Informationen zu gültigen Namen finden Sie unter Namen und Kennungen. - WITH
-
Optionales Schlüsselwort. WITH wird von Amazon Redshift ignoriert
- PASSWORD { 'password' | 'md5hash' | 'sha256hash' | DISABLE }
-
Legt das Benutzerpasswort fest.
Standardmäßig können Benutzer ihre eigenen Passwörter ändern, es sei denn, das Passwort ist deaktiviert. Legen Sie zum Deaktivieren des Passworts eines Benutzers DISABLE fest. Wenn das Passwort eines Benutzers deaktiviert ist, wird das Passwort aus dem System gelöscht und der Benutzer kann sich nur anhand der vorübergehenden AWS Identity and Access Management (IAM)-Benutzeranmeldeinformationen anmelden. Weitere Informationen finden Sie unter Verwenden der IAM-Authentifizierung zum Generieren von Benutzeranmeldeinformationen für Datenbanken. Nur ein Superuser kann Passwörter aktivieren oder deaktivieren. Sie können das Passwort eines Superusers nicht deaktivieren. Führen Sie zum Aktivieren eines Passworts ALTER USER aus und legen Sie ein Passwort fest.
Sie können das Passwort als reinen Text, als MD5-Hash-Zeichenfolge oder als SHA256-Hash-Zeichenfolge angeben.
Anmerkung
Wenn Sie einen neuen Cluster mit der AWS-Managementkonsole, AWS CLI oder Amazon Redshift API starten, müssen Sie ein Nur-Text-Passwort für den ursprünglichen Datenbankbenutzer angeben. Sie können das Passwort später mittels ändern ALTER USER.
Wenn Sie es als Klartext angeben, muss das Passwort den folgenden Einschränkungen entsprechen:
-
Es muss 8 bis 64 Zeichen lang sein.
-
Es muss mindestens einen Großbuchstaben, einen Kleinbuchstaben und eine Zahl enthalten.
-
Es kann alle ASCII-Zeichen mit den ASCII-Codes 33–126 enthalten, außer einfachen Anführungszeichen ('), doppelten Anführungszeichen ("), \, / oder @.
Sicherer als die Übergabe des Passwortparameters CREATE USER als Klartext ist die Angabe einer MD5-Hash-Zeichenfolge, die das Passwort und den Benutzernamen enthält.
Anmerkung
Wenn Sie eine MD5-Hash-Zeichenfolge angeben, prüft der Befehl CREATE USER, ob eine gültige MD5-Hash-Zeichenfolge vorhanden ist, validiert den Passwortteil der Zeichenfolge jedoch nicht. In diesem Fall ist es möglich, ein Passwort wie beispielsweise eine leere Zeichenfolge zu erstellen, das nicht für die Anmeldung an der Datenbank verwendet werden kann.
So geben Sie ein MD5-Passwort an:
-
Verketten Sie Passwort und Benutzername.
Wenn das Passwort beispielsweise
ezund der Benutzernameuser1ist, ist die verkettete Zeichenfolgeezuser1. -
Wandeln Sie die verkettete Zeichenfolge in eine MD5-Hash-Zeichenfolge mit 32 Zeichen um. Sie können für die Erstellung der Hash-Zeichenfolge jedes MD5-Dienstprogramm verwenden. Im folgenden Beispiel werden Amazon Redshift Die Funktion MD5 und der Verkettungsoperator ( || ) verwendet, um eine MD5-Hash-Zeichenfolge mit 32 Zeichen zurückzugeben.
select md5('ez' || 'user1');md5 -------------------------------- 153c434b4b77c89e6b94f12c5393af5b -
Verketten Sie
md5vor der MD5-Hash-Zeichenfolge, und geben Sie die verkettete Zeichenfolge als das Argument md5hash an.create user user1 password 'md5153c434b4b77c89e6b94f12c5393af5b'; -
Melden Sie sich mit den Anmeldeinformationen bei der Datenbank an.
In diesem Beispiel melden Sie sich als
user1mit dem Passwortezan.
Eine andere sichere Alternative ist es, einen SHA-256-Hash eines Passwortstrings anzugeben. Sie können auch einen eigenen gültigen SHA-256-Digest und ein 256-Bit-Salt, das zur Erstellung des Digest verwendet wurde, bereitstellen.
-
Digest – Die Ausgabe einer Hashing-Funktion.
-
Salt – Zufällig generierte Daten, die mit dem Passwort kombiniert werden, um Muster in der Hashing-Funktion-Ausgabe zu reduzieren.
'sha256|Mypassword''sha256|digest|256-bit-salt'Im folgenden Beispiel generiert und verwaltet Amazon Redshift das Salt.
CREATE USER admin PASSWORD 'sha256|Mypassword1';Im folgenden Beispiel werden ein gültiger SHA-256-Digest und ein 256-Bit-Salt, das zur Erstellung des Digest verwendet wurde, bereitgestellt.
Gehen Sie wie folgt vor, um ein Passwort anzugeben und es mit Ihrem eigenen Salt zu hashen:
-
Erstellen Sie ein 256-Bit-Salt. Sie können ein Salt erhalten, indem Sie einen beliebigen hexadezimalen Zeichenfolgengenerator verwenden, um eine 64 Zeichen lange Zeichenfolge zu generieren. In diesem Beispiel lautet das Salt
c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6. -
Verwenden Sie die Funktion FROM_HEX, um Ihr Salt in eine Binärdatei umzuwandeln. Dies liegt daran, dass die SHA2-Funktion die binäre Darstellung des Salts erfordert. Sehen Sie sich die folgende Anweisung an.
SELECT FROM_HEX('c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6'); -
Verwenden Sie die CONCAT-Funktion, um Ihr Salt an Ihr Passwort anzuhängen. In diesem Beispiel lautet das Passwort
Mypassword1. Sehen Sie sich die folgende Anweisung an.SELECT CONCAT('Mypassword1',FROM_HEX('c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6')); -
Verwenden Sie die SHA2-Funktion, um aus Ihrer Kombination aus Passwort und Salt einen Digest zu erstellen. Sehen Sie sich die folgende Anweisung an.
SELECT SHA2(CONCAT('Mypassword1',FROM_HEX('c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6')), 0); -
Erstellen Sie den Benutzer mit dem Digest und dem Salt aus den vorherigen Schritten. Sehen Sie sich die folgende Anweisung an.
CREATE USER admin PASSWORD 'sha256|821708135fcc42eb3afda85286dee0ed15c2c461d000291609f77eb113073ec2|c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6'; -
Melden Sie sich mit den Anmeldeinformationen bei der Datenbank an.
In diesem Beispiel melden Sie sich als
adminmit dem PasswortMypassword1an.
Wenn Sie ein Nur-Text-Passwort festlegen, ohne eine Hashing-Funktion anzugeben, wird ein MD5-Digest generiert, der den Nutzernamen als Salt verwendet.
-
- CREATEDB | NOCREATEDB
-
Mithilfe der Option CREATEDB kann der neue Benutzer Datenbanken erstellen. Der Standardwert ist NOCREATEDB.
- CREATEUSER | NOCREATEUSER
-
Die Option CREATEUSER erstellt einen Superuser mit allen Datenbankrechten einschließlich CREATE USER. Der Standardwert ist NOCREATEUSER. Weitere Informationen finden Sie unter superuser.
- SYSLOG ACCESS { RESTRICTED | UNRESTRICTED }
-
Eine Klausel, über die die Zugriffsebene eines Benutzers auf die Amazon-Redshift-Systemtabellen und -Ansichten festgelegt wird.
Reguläre Benutzer mit der Berechtigung SYSLOG ACCESS RESTRICTED können nur die Zeilen anzeigen, die von den betreffenden Benutzern in für Benutzer sichtbaren Systemtabellen und Ansichten erstellt wurden. RESTRICTED ist der Standardwert.
Reguläre Benutzer mit der Berechtigung SYSLOG ACCESS UNRESTRICTED können alle Zeilen in für Benutzer sichtbaren Systemtabellen und Ansichten anzeigen, einschließlich Zeilen, die von anderen Benutzern erstellt wurden. Über die Option UNRESTRICTED erhält ein Benutzer keinen Zugriff auf für Superuser sichtbare Tabellen. Nur Superuser können auf solche Tabellen zugreifen.
Anmerkung
Wenn Sie einem Benutzer uneingeschränkten Zugriff auf Systemtabellen gewähren, sieht der Benutzer auch Daten, die von anderen Benutzern generiert wurden. STL_QUERY und STL_QUERYTEXT enthalten beispielsweise den vollständigen Text von INSERT-, UPDATE- und DELETE-Anweisungen, die möglicherweise sensible von Benutzern generierte Daten enthalten.
Alle Zeilen in SVV_TRANSACTIONS sind für alle Benutzer sichtbar.
Weitere Informationen finden Sie unter Sichtbarkeit der Daten in Systemtabellen und Ansichten.
- IN GROUP groupname
-
Gibt den Namen einer vorhandenen Gruppe an, zu der der Benutzer gehört. Es können mehrere Gruppennamen aufgelistet werden.
- VALID UNTIL abstime
-
Die Option VALID UNTIL legt eine absolute Zeit fest, nach der das Passwort des Benutzers nicht länger gültig ist. Standardmäßig gibt es für das Passwort kein Zeitlimit.
- CONNECTION LIMIT { Limit | UNLIMITED }
-
Die maximale Zahl von Datenbankverbindungen, die der Benutzer gleichzeitig geöffnet haben darf. Das Limit wird für Superuser nicht durchgesetzt. Mithilfe des Schlüsselworts UNLIMITED können Sie die maximale Zahl gleichzeitiger Verbindungen festlegen. Möglicherweise gilt auch ein Limit für die Zahl der Verbindungen für die einzelnen Datenbanken. Weitere Informationen finden Sie unter CREATE DATABASE. Der Standardwert ist UNLIMITED. Um die aktuellen Verbindungen anzuzeigen, führen Sie eine Abfrage für die Systemansicht STV_SESSIONS aus.
Anmerkung
Wenn sowohl für Benutzer- als auch für Datenbankverbindungen Limits gelten, muss ein ungenutzter Verbindungsplatz verfügbar sein, der sich innerhalb beider Grenzen befindet, wenn ein Benutzer versucht, eine Verbindung herzustellen.
- SESSION TIMEOUT limit
-
Die maximale Zeit in Sekunden, die eine Sitzung inaktiv oder untätig bleibt. Der Bereich liegt zwischen 60 Sekunden (einer Minute) und 1.728.000 Sekunden (20 Tagen). Wenn für den Benutzer kein Sitzungstimeout eingestellt ist, gilt die Clustereinstellung. Weitere Informationen finden Sie unter Kontingente und Limits in Amazon Redshift im Verwaltungshandbuch zu Amazon Redshift.
Wenn Sie das Sitzungstimeout festlegen, wird es nur auf neue Sitzungen angewendet.
Um Informationen über aktive Benutzersitzungen, einschließlich der Startzeit, des Benutzernamens und des Sitzungstimeouts anzuzeigen, fragen Sie die STV_SESSIONS-Systemansicht ab. Um Informationen über den Verlauf von Benutzersitzungen anzuzeigen, fragen Sie die STL_SESSIONS-Ansicht an. Um Informationen über Datenbankbenutzer, einschließlich Sitzungstimeouts, abzurufen, fragen Sie die SVL_USER_INFO-Ansicht ab.
- EXTERNALID external_id
-
Der Bezeichner für den Benutzer, der einem Identitätsanbieter zugeordnet ist. Der Benutzer muss sein Passwort deaktiviert haben. Weitere Informationen finden Sie unter Nativer Identitätsanbieter(IdP)-Verbund für Amazon Redshift.
Nutzungshinweise
Standardmäßig besitzen alle Benutzer CREATE- und USAGE-Rechte für das Schema PUBLIC. Um Benutzer daran zu hindern, Objekte im Schema PUBLIC einer Datenbank zu erstellen, verwenden Sie den Befehl REVOKE, um dieses Recht zu entfernen.
Wenn Sie die IAM-Authentifizierung verwenden, um Benutzeranmeldeinformationen für Datenbanken zu erstellen, können Sie einen Superuser erstellen, der sich nur anhand vorübergehender Anmeldeinformationen anmelden kann. Sie können das Passwort eines Superusers nicht deaktivieren, aber ein unbekanntes Passwort mithilfe einer willkürlich generierten MD5-Hash-Zeichenfolge erstellen.
create user iam_superuser password 'md5A1234567890123456780123456789012' createuser;
Die Groß-/Kleinschreibung eines in doppelte Anführungszeichen eingeschlossenen Benutzernamens bleibt unabhängig von der Einstellung der enable_case_sensitive_identifier-Konfigurationsoption immer erhalten. Weitere Informationen finden Sie unter enable_case_sensitive_identifier.
Beispiele
Der folgende Befehl erstellt einen Benutzer namens dbuser mit dem Passwort "abcD1234", Datenbankerstellungsrechten und einem Verbindungslimit von 30.
create user dbuser with password 'abcD1234' createdb connection limit 30;
Führen Sie eine Abfrage für die Katalogtabelle PG_USER_INFO aus, um Details zu einem Datenbankbenutzer anzuzeigen.
select * from pg_user_info;usename | usesysid | usecreatedb | usesuper | usecatupd | passwd | valuntil | useconfig | useconnlimit -----------+----------+-------------+----------+-----------+----------+----------+-----------+------------- rdsdb | 1 | true | true | true | ******** | infinity | | adminuser | 100 | true | true | false | ******** | | | UNLIMITED dbuser | 102 | true | false | false | ******** | | | 30
Im folgenden Beispiel ist das Kontopasswort bis zum 10 Juni 2017 gültig.
create user dbuser with password 'abcD1234' valid until '2017-06-10';
Im folgenden Beispiel wird ein Benutzer mit einen Kennwort erstellt, das zwischen Groß- und Kleinschreibung unterscheidet und Sonderzeichen enthält.
create user newman with password '@AbC4321!';
Um in Ihrem MD5-Passwort einen Backslash („\“) zu verwenden, müssen Sie für den Backslash ein Escape-Zeichen in Form eines Backslash in Ihrer Quellzeichenfolge verwenden. Im folgenden Beispiel wird ein Benutzer namens slashpass mit einem einzelnen Backslash („\“) als Passwort erstellt.
select md5('\\'||'slashpass');md5 -------------------------------- 0c983d1a624280812631c5389e60d48c
Erstellen Sie einen Benutzer mit dem Passwort md5.
create user slashpass password 'md50c983d1a624280812631c5389e60d48c';
Im folgenden Beispiel wird ein Benutzer mit dem Namen dbuser erstellt, für den das Timeout für eine Leerlaufsitzung auf 120 Sekunden eingestellt ist.
CREATE USER dbuser password 'abcD1234' SESSION TIMEOUT 120;
Im folgenden Beispiel wird ein Benutzer mit dem Namen erstellt bob. Der Namespace lautet myco_aad. Dies ist nur ein Beispiel. Um den Befehl erfolgreich ausführen zu können, benötigen Sie einen registrierten Identitätsanbieter. Weitere Informationen finden Sie unter Nativer Identitätsanbieter(IdP)-Verbund für Amazon Redshift.
CREATE USER myco_aad:bob EXTERNALID "ABC123" PASSWORD DISABLE;