Catatan penggunaan - Amazon Redshift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Catatan penggunaan

Untuk memberikan hak istimewa pada suatu objek, Anda harus memenuhi salah satu kriteria berikut:

  • Jadilah pemilik objek.

  • Jadilah superuser.

  • Miliki hak istimewa hibah untuk objek dan hak istimewa itu.

Misalnya, perintah berikut memungkinkan HR pengguna untuk melakukan perintah SELECT pada tabel karyawan dan untuk memberikan dan mencabut hak istimewa yang sama untuk pengguna lain.

grant select on table employees to HR with grant option;

SDM tidak dapat memberikan hak istimewa untuk operasi apa pun selain SELECT, atau di meja selain karyawan.

Sebagai contoh lain, perintah berikut memungkinkan HR pengguna untuk melakukan perintah ALTER di meja karyawan dan untuk memberikan dan mencabut hak istimewa yang sama untuk pengguna lain.

grant ALTER on table employees to HR with grant option;

SDM tidak dapat memberikan hak istimewa untuk operasi apa pun selain ALTER, atau di meja selain karyawan.

Memiliki hak istimewa yang diberikan pada tampilan tidak berarti memiliki hak istimewa pada tabel yang mendasarinya. Demikian pula, memiliki hak istimewa yang diberikan pada skema tidak berarti memiliki hak istimewa pada tabel dalam skema. Sebagai gantinya, berikan akses ke tabel yang mendasarinya secara eksplisit.

Untuk memberikan hak istimewa ke AWS Lake Formation tabel, peran IAM yang terkait dengan skema eksternal tabel harus memiliki izin untuk memberikan hak istimewa ke tabel eksternal. Contoh berikut membuat skema eksternal dengan peran IAM terkait. myGrantor Peran IAM myGrantor memiliki izin untuk memberikan izin kepada orang lain. Perintah GRANT menggunakan izin peran IAM myGrantor yang terkait dengan skema eksternal untuk memberikan izin ke peran IAM. myGrantee

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';

Jika Anda MEMBERIKAN SEMUA hak istimewa untuk peran IAM, hak istimewa individu diberikan dalam Katalog Data Berkemampuan Lake Formation terkait. Misalnya, BERIKAN SEMUA berikut menghasilkan hak istimewa individu yang diberikan (SELECT, ALTER, DROP, DELETE, dan INSERT) yang ditampilkan di konsol Lake Formation.

grant all on external table mySchema.mytable to iam_role 'arn:aws:iam::123456789012:role/myGrantee';

Superuser dapat mengakses semua objek terlepas dari perintah GRANT dan REVOKE yang menetapkan hak istimewa objek.

Catatan penggunaan untuk kontrol akses tingkat kolom

Catatan penggunaan berikut berlaku untuk hak istimewa tingkat kolom pada tabel dan tampilan Amazon Redshift. Catatan ini menjelaskan tabel; catatan yang sama berlaku untuk tampilan kecuali kita secara eksplisit mencatat pengecualian.

  • Untuk tabel Amazon Redshift, Anda hanya dapat memberikan hak SELECT dan UPDATE di tingkat kolom. Untuk tampilan Amazon Redshift, Anda hanya dapat memberikan hak istimewa SELECT di tingkat kolom.

  • Kata kunci ALL adalah sinonim untuk hak istimewa SELECT dan UPDATE yang digabungkan saat digunakan dalam konteks GRANT tingkat kolom pada tabel.

  • Jika Anda tidak memiliki hak istimewa SELECT pada semua kolom dalam tabel, melakukan operasi SELECT * hanya mengembalikan kolom-kolom yang dapat Anda akses. Saat menggunakan tampilan, operasi SELECT * mencoba mengakses semua kolom dalam tampilan. Jika Anda tidak memiliki izin untuk mengakses semua kolom, kueri ini gagal dengan kesalahan izin ditolak.

  • SELECT * tidak diperluas ke hanya kolom yang dapat diakses dalam kasus berikut:

    • Anda tidak dapat membuat tampilan reguler hanya dengan kolom yang dapat diakses menggunakan SELECT *.

    • Anda tidak dapat membuat tampilan terwujud hanya dengan kolom yang dapat diakses menggunakan SELECT *.

  • Jika Anda memiliki hak istimewa SELECT atau UPDATE pada tabel atau tampilan dan menambahkan kolom, Anda masih memiliki hak istimewa yang sama pada tabel atau tampilan dan dengan demikian semua kolomnya.

  • Hanya pemilik tabel atau superuser yang dapat memberikan hak istimewa tingkat kolom.

  • Klausa WITH GRANT OPTION tidak didukung untuk hak istimewa tingkat kolom.

  • Anda tidak dapat memiliki hak istimewa yang sama di tingkat tabel dan tingkat kolom. Misalnya, pengguna tidak data_scientist dapat memiliki hak istimewa SELECT pada tabel employee dan hak istimewa SELECT pada kolom. employee.department Pertimbangkan hasil berikut saat memberikan hak istimewa yang sama ke tabel dan kolom di dalam tabel:

    • Jika pengguna memiliki hak istimewa tingkat tabel di atas meja, maka pemberian hak istimewa yang sama di tingkat kolom tidak berpengaruh.

    • Jika pengguna memiliki hak istimewa tingkat tabel di atas meja, maka mencabut hak istimewa yang sama untuk satu atau beberapa kolom tabel mengembalikan kesalahan. Sebaliknya, cabut hak istimewa di tingkat tabel.

    • Jika pengguna memiliki hak istimewa tingkat kolom, maka pemberian hak istimewa yang sama di tingkat tabel mengembalikan kesalahan.

    • Jika pengguna memiliki hak istimewa tingkat kolom, maka mencabut hak istimewa yang sama di tingkat tabel akan mencabut hak istimewa kolom dan tabel untuk semua kolom di atas tabel.

  • Anda tidak dapat memberikan hak istimewa tingkat kolom pada tampilan yang mengikat akhir.

  • Untuk membuat tampilan terwujud, Anda harus memiliki hak istimewa SELECT tingkat tabel pada tabel dasar. Bahkan jika Anda memiliki hak istimewa tingkat kolom pada kolom tertentu, Anda tidak dapat membuat tampilan terwujud hanya pada kolom tersebut. Namun, Anda dapat memberikan hak istimewa SELECT ke kolom tampilan terwujud, mirip dengan tampilan biasa.

  • Untuk mencari hibah hak istimewa tingkat kolom, gunakan tampilan PG_ATTRIBUTE_INFO.

Catatan penggunaan untuk memberikan izin ASSUMEROLE

Catatan penggunaan berikut berlaku untuk pemberian izin ASSUMEROLE di Amazon Redshift.

Anda menggunakan izin ASSUMEROLE untuk mengontrol izin akses peran IAM untuk pengguna database, peran, atau grup pada perintah seperti COPY, UNLOAD, FUNGSI EKSTERNAL, atau BUAT MODEL. Setelah Anda memberikan izin ASSUMEROLE kepada pengguna, peran, atau grup untuk peran IAM, pengguna, peran, atau grup dapat mengambil peran tersebut saat menjalankan perintah. Izin ASSUMEROLE memungkinkan Anda untuk memberikan akses ke perintah yang sesuai sesuai kebutuhan.

Hanya pengguna super database yang dapat memberikan atau mencabut izin ASSUMEROLE untuk pengguna, peran, dan grup. Superuser selalu mempertahankan izin ASSUMEROLE.

Untuk mengaktifkan penggunaan izin ASSUMEROLE bagi pengguna, peran, dan grup, superuser melakukan dua tindakan berikut:

  • Jalankan pernyataan berikut sekali di cluster:

    revoke assumerole on all from public for all;
  • Berikan izin ASSUMEROLE kepada pengguna, peran, dan grup untuk perintah yang sesuai.

Anda dapat menentukan rantai peran dalam klausa ON saat memberikan izin ASSUMEROLE. Anda menggunakan koma untuk memisahkan peran dalam rantai peran, misalnya,Role1,Role2,Role3. Jika rantai peran ditentukan saat memberikan izin ASSUMEROLE, Anda harus menentukan rantai peran saat melakukan operasi yang diberikan oleh izin ASSUMEROLE. Anda tidak dapat menentukan peran individu dalam rantai peran saat melakukan operasi yang diberikan oleh izin ASSUMEROLE. Misalnya, jika pengguna, peran, atau grup diberikan rantai peranRole1,Role2,Role3, Anda tidak dapat menentukan hanya Role1 untuk melakukan operasi.

Jika pengguna mencoba melakukan operasi COPY, UNLOAD, EXTERNAL FUNCTION, atau CREATE MODEL dan belum diberikan izin ASSUMEROLE, pesan yang mirip dengan berikut akan muncul.

ERROR: User awsuser does not have ASSUMEROLE permission on IAM role "arn:aws:iam::123456789012:role/RoleA" for COPY

Untuk mencantumkan pengguna yang telah diberikan akses ke peran dan perintah IAM melalui izin ASSUMEROLE, lihat. HAS_ASSUMEROLE_PRIVILEGE Untuk mencantumkan peran IAM dan izin perintah yang telah diberikan kepada pengguna yang Anda tentukan, lihat. PG_GET_IAM_ROLE_BY_USER Untuk mencantumkan pengguna, peran, dan grup yang telah diberikan akses ke peran IAM yang Anda tentukan, lihatPG_GET_GRANTEE_BY_IAM_ROLE.

Catatan penggunaan untuk memberikan izin pembelajaran mesin

Anda tidak dapat secara langsung memberikan atau mencabut izin yang terkait dengan fungsi ML. Fungsi ML milik model ML dan izin dikontrol melalui model. Sebagai gantinya, Anda dapat memberikan izin yang terkait dengan model ML. Contoh berikut menunjukkan bagaimana memberikan izin kepada semua pengguna untuk menjalankan fungsi ML yang terkait dengan model. customer_churn

GRANT EXECUTE ON MODEL customer_churn TO PUBLIC;

Anda juga dapat memberikan semua izin kepada pengguna untuk model customer_churn ML.

GRANT ALL on MODEL customer_churn TO ml_user;

Pemberian EXECUTE izin yang terkait dengan fungsi ML akan gagal jika ada fungsi ML dalam skema, bahkan jika fungsi ML tersebut sudah memiliki EXECUTE izin melalui. GRANT EXECUTE ON MODEL Sebaiknya gunakan skema terpisah saat menggunakan CREATE MODEL perintah untuk menjaga fungsi ML dalam skema terpisah sendiri. Contoh berikut menunjukkan bagaimana melakukannya.

CREATE MODEL ml_schema.customer_churn FROM customer_data TARGET churn FUNCTION ml_schema.customer_churn_prediction IAM_ROLE default SETTINGS ( S3_BUCKET 'your-s3-bucket' );