Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Nutzungshinweise
Um Rechte für ein Objekt zu gewähren, müssen Sie mindestens eines der folgenden Kriterien erfüllen:
-
Sie müssen der Besitzer des Objekts sein.
-
Sie müssen ein Superuser sein.
-
Sie müssen das Recht besitzen, Rechte für dieses Objekt und Recht zu gewähren.
Mit dem folgenden Befehl kann der Benutzer HR beispielsweise sowohl SELECT Befehle in der Tabelle Employees ausführen als auch anderen Benutzern dieselbe Berechtigung gewähren und entziehen.
grant select on table employees to HR with grant option;
Die Personalabteilung kann keine Rechte für andere Operationen als SELECT Mitarbeiter oder für eine andere Tabelle als Mitarbeiter gewähren.
Ein weiteres Beispiel: Mit dem folgenden Befehl kann der Benutzer HR sowohl ALTER Befehle für die Tabelle Employees ausführen als auch anderen Benutzern dieselbe Berechtigung gewähren und entziehen.
grant ALTER on table employees to HR with grant option;
Die Personalabteilung kann keine Rechte für andere Operationen als ALTER Mitarbeiter oder für eine andere Tabelle als Mitarbeiter gewähren.
Die Gewährung von Rechten für eine Ansicht impliziert nicht, dass auch Rechte in Bezug auf die zugrunde liegenden Tabellen gewährt werden. Gleichermaßen impliziert die Gewährung von Rechten für ein Schema nicht, dass auch Rechte in Bezug auf die zugrunde liegenden Tabellen gewährt werden. Sie müssen den Zugriff auf die zugrunde liegenden Tabellen explizit gewähren.
Um einer AWS Lake Formation Tabelle Berechtigungen zu gewähren, muss die IAM Rolle, die dem externen Schema der Tabelle zugeordnet ist, über die Berechtigung verfügen, der externen Tabelle Berechtigungen zu gewähren. Im folgenden Beispiel wird ein externes Schema mit einer zugehörigen IAM Rolle erstelltmyGrantor
. Die IAM Rolle myGrantor
hat die Berechtigung, anderen Berechtigungen zu gewähren. Der GRANT Befehl verwendet die Berechtigung der IAM RollemyGrantor
, die dem externen Schema zugeordnet ist, um der IAM Rolle die Berechtigung zu erteilenmyGrantee
.
create external schema mySchema from data catalog database 'spectrum_db' iam_role 'arn:aws:iam::123456789012:role/myGrantor' create external database if not exists;
grant select on external table mySchema.mytable to iam_role 'arn:aws:iam::123456789012:role/myGrantee';
Wenn Sie GRANT ALL Berechtigungen für eine IAM Rolle haben, werden individuelle Rechte im zugehörigen Datenkatalog mit aktivierter Lake Formation gewährt. Das Folgende GRANT ALL führt beispielsweise dazu, dass die gewährten individuellen Rechte (SELECT,, ALTER DROPDELETE, undINSERT) in der Lake Formation Formation-Konsole angezeigt werden.
grant all on external table mySchema.mytable to iam_role 'arn:aws:iam::123456789012:role/myGrantee';
Superuser können unabhängig von GRANT REVOKE Befehlen, die Objektberechtigungen festlegen, auf alle Objekte zugreifen.
Verwendungshinweise für die Zugriffskontrolle auf Spaltenebene
Die folgenden Verwendungshinweise gelten für Berechtigungen auf Spaltenebene für Amazon-Redshift-Tabellen und -Ansichten. Diese Hinweise beschreiben Tabellen; die gleichen Hinweise gelten für Ansichten, sofern nicht ausdrücklich anderweitig vermerkt.
Für eine Amazon Redshift Redshift-Tabelle können Sie nur die UPDATE Berechtigungen SELECT und auf Spaltenebene gewähren. Für eine Amazon Redshift Redshift-Ansicht können Sie die SELECT Berechtigung nur auf Spaltenebene gewähren.
Das ALL Schlüsselwort ist ein Synonym für SELECT und kombiniert UPDATE Rechte, wenn es im Kontext einer Tabelle auf GRANT Spaltenebene verwendet wird.
-
Wenn Sie nicht für alle Spalten in einer Tabelle SELECT berechtigt sind, werden bei der Ausführung einer Operation „SELECT*“ nur die Spalten zurückgegeben, auf die Sie Zugriff haben. Wenn Sie eine Ansicht verwenden, versucht eine SELECT *-Operation, auf alle Spalten in der Ansicht zuzugreifen. Wenn Sie nicht berechtigt sind, auf alle Spalten zuzugreifen, schlagen diese Abfragen fehl und es wird die Fehlermeldung „Zugriff verweigert“ angezeigt.
SELECT* wird in den folgenden Fällen nicht nur auf zugängliche Spalten erweitert:
Mithilfe von SELECT * können Sie keine reguläre Ansicht mit nur zugänglichen Spalten erstellen.
Mithilfe von SELECT * können Sie keine materialisierte Ansicht mit nur zugänglichen Spalten erstellen.
Wenn Sie über eine UPDATE Berechtigung für eine Tabelle oder Ansicht verfügen SELECT und eine Spalte hinzufügen, haben Sie immer noch dieselben Rechte für die Tabelle oder Ansicht und somit für alle ihre Spalten.
Nur der Besitzer einer Tabelle oder ein Superuser kann Berechtigungen auf Spaltenebene erteilen.
Die WITH GRANT OPTION Klausel wird für Berechtigungen auf Spaltenebene nicht unterstützt.
Sie können nicht dieselbe Berechtigung sowohl auf Tabellenebene als auch auf Spaltenebene besitzen. Beispielsweise
data_scientist
kann der Benutzer nicht sowohl über Berechtigungen für die Tabelleemployee
als auch über SELECT SELECT Berechtigungen für die Spalte verfügen.employee.department
Berücksichtigen Sie die folgenden Ergebnisse, wenn Sie einer Tabelle und einer Spalte innerhalb der Tabelle dieselbe Berechtigung erteilen:-
Wenn ein Benutzer über eine Berechtigung auf Tabellenebene für eine Tabelle verfügt, hat das Gewähren derselben Berechtigung auf Spaltenebene keine Auswirkungen.
-
Wenn ein Benutzer über eine Berechtigung auf Tabellenebene für eine Tabelle verfügt, wird beim Widerrufen derselben Berechtigung für eine oder mehrere Spalten der Tabelle ein Fehler zurückgegeben. Widerrufen Sie stattdessen die Berechtigung auf Tabellenebene.
-
Wenn ein Benutzer über eine Berechtigung auf Spaltenebene verfügt, dann wird beim Erteilen derselben Berechtigung auf Tabellenebene ein Fehler zurückgegeben.
-
Wenn ein Benutzer über eine Berechtigung auf Spaltenebene verfügt, werden beim Widerrufen derselben Berechtigung auf Tabellenebene sowohl Spalten- als auch Tabellenberechtigungen für alle Spalten in der Tabelle entzogen.
-
Sie können für späte Bindungsansichten keine Berechtigungen auf Spaltenebene erteilen.
Um eine materialisierte Ansicht zu erstellen, müssen Sie über SELECT Berechtigungen auf Tabellenebene für die Basistabellen verfügen. Selbst, wenn Sie über Berechtigungen auf Spaltenebene für bestimmte Spalten verfügen, können Sie keine materialisierte Ansicht für nur diese Spalten erstellen. Sie können jedoch, ähnlich wie bei regulären Ansichten, Spalten einer materialisierten Ansicht SELECT Berechtigungen gewähren.
Verwenden Sie die Ansicht ATTRIBUTEPG_ _, um nach Berechtigungen auf Spaltenebene zu suchen. INFO
Nutzungshinweise für die Erteilung der Erlaubnis ASSUMEROLE
Die folgenden Nutzungshinweise gelten für die Erteilung der ASSUMEROLE Genehmigung in Amazon Redshift.
Sie verwenden die ASSUMEROLE Berechtigung, um die IAM Rollenzugriffsberechtigungen für Datenbankbenutzer, Rollen oder Gruppen anhand von Befehlen wieCOPY, UNLOAD EXTERNALFUNCTION, oder CREATE MODEL zu steuern. Nachdem Sie einem Benutzer, einer Rolle oder einer Gruppe die ASSUMEROLE Berechtigung für eine IAM Rolle erteilt haben, kann der Benutzer, die Rolle oder die Gruppe diese Rolle bei der Ausführung des Befehls übernehmen. Mit der ASSUMEROLE Berechtigung können Sie bei Bedarf Zugriff auf die entsprechenden Befehle gewähren.
Nur ein Datenbank-Superuser kann die ASSUMEROLE Berechtigung für Benutzer, Rollen und Gruppen gewähren oder entziehen. Ein Superuser behält immer die ASSUMEROLE Erlaubnis.
Um die Verwendung der ASSUMEROLE Berechtigung für Benutzer, Rollen und Gruppen zu ermöglichen, führt ein Superuser die folgenden zwei Aktionen aus:
Führen Sie die folgende Anweisung einmalig auf dem Cluster aus:
revoke assumerole on all from public for all;
Erteilen Sie Benutzern, Rollen und Gruppen die ASSUMEROLE Berechtigung für die entsprechenden Befehle.
Sie können die Rollenverkettung in der ON-Klausel angeben, wenn Sie die ASSUMEROLE Berechtigung erteilen. Verwenden Sie Kommas, um Rollen in einer Rollenkette zu trennen, z. B. ., Role1,Role2,Role3
. Wenn die Rollenverkettung bei der Erteilung der ASSUMEROLE Berechtigung angegeben wurde, müssen Sie die Rollenkette angeben, wenn Sie mit der ASSUMEROLE Berechtigung erteilte Operationen ausführen. Sie können keine einzelnen Rollen innerhalb der Rollenkette angeben, wenn Sie mit der ASSUMEROLE Berechtigung erteilte Operationen ausführen. Wenn einem Benutzer, einer Rolle oder einer Gruppe beispielsweise die Rollenkette Role1,Role2,Role3
zugewiesen wurde, können Sie nicht nur Role1
für die Ausführung von Vorgängen angeben.
Wenn ein Benutzer versuchtCOPY, eine,UNLOAD, oder CREATE MODEL -Operation auszuführen EXTERNALFUNCTION, ohne dass ihm die ASSUMEROLE entsprechende Berechtigung erteilt wurde, wird eine Meldung ähnlich der folgenden angezeigt.
ERROR: User awsuser does not have ASSUMEROLE permission on IAM role "arn:aws:iam::123456789012:role/RoleA" for COPY
Eine Liste der Benutzer, denen durch diese ASSUMEROLE Berechtigung Zugriff auf IAM Rollen und Befehle gewährt wurde, finden Sie unterHAS_ASSUMEROLE_PRIVILEGE. Eine Liste der IAM Rollen und Befehlsberechtigungen, die einem von Ihnen angegebenen Benutzer gewährt wurden, finden Sie unterPG_ _ _ _BY_ GET IAM ROLE USER. Eine Liste der Benutzer, Rollen und Gruppen, denen Zugriff auf eine von Ihnen angegebene IAM Rolle gewährt wurde, finden Sie unterPG_ _ GET GRANTEE IAM _BY_ _ ROLE.
Hinweise zum Erteilen von Machine-Learning-Berechtigungen
Sie können Berechtigungen für eine ML-Funktion nicht direkt erteilen oder widerrufen. Eine ML-Funktion gehört zu einem ML-Modell, und die Berechtigungen werden über das Modell gesteuert. Stattdessen erteilen Sie Berechtigungen für das ML-Modell. Das folgende Beispiel zeigt, wie allen Benutzern Berechtigungen zum Ausführen der dem Modell customer_churn
zugeordneten ML-Funktion erteilt werden.
GRANT EXECUTE ON MODEL customer_churn TO PUBLIC;
Sie können einem Benutzer auch alle Berechtigungen für das ML-Modell gewährencustomer_churn
.
GRANT ALL on MODEL customer_churn TO ml_user;
Das Erteilen der Berechtigung EXECUTE
für eine ML-Funktion schlägt fehl, wenn das Schema eine ML-Funktion enthält, auch wenn diese ML-Funktion bereits über GRANT EXECUTE ON MODEL
über die Berechtigung EXECUTE
verfügt. Wir empfehlen, bei Verwendung des Befehls CREATE MODEL
ein separates Schema zu verwenden, um die ML-Funktionen in einem separaten Schema zu behalten. Das folgende Beispiel veranschaulicht die Vorgehensweise hierfür.
CREATE MODEL ml_schema.customer_churn FROM customer_data TARGET churn FUNCTION ml_schema.customer_churn_prediction IAM_ROLE default SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket' );