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 SELECT perintah di meja 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 selainSELECT, atau di meja selain karyawan.

Sebagai contoh lain, perintah berikut memungkinkan HR pengguna untuk melakukan ALTER perintah 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 selainALTER, 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, IAM peran yang terkait dengan skema eksternal tabel harus memiliki izin untuk memberikan hak istimewa ke tabel eksternal. Contoh berikut membuat skema eksternal dengan IAM peran myGrantor terkait. IAMPeran tersebut myGrantor memiliki izin untuk memberikan izin kepada orang lain. GRANTPerintah menggunakan izin IAM peran myGrantor yang terkait dengan skema eksternal untuk memberikan izin ke IAM peran myGrantee tersebut.

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 GRANT ALL memiliki hak istimewa untuk IAM peran, hak istimewa individu diberikan dalam Katalog Data Berkemampuan Formasi Danau terkait. Misalnya, berikut ini GRANT ALL menghasilkan hak istimewa individu yang diberikan (SELECT,,, ALTER DROPDELETE, danINSERT) 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 GRANT dan REVOKE perintah yang mengatur 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 UPDATE hak SELECT dan hak istimewa di tingkat kolom. Untuk tampilan Amazon Redshift, Anda hanya dapat memberikan SELECT hak istimewa di tingkat kolom.

  • ALLKata kunci adalah sinonim untuk SELECT dan UPDATE hak istimewa digabungkan ketika digunakan dalam konteks tingkat kolom GRANT di atas meja.

  • Jika Anda tidak memiliki SELECT hak istimewa pada semua kolom dalam tabel, melakukan SELECT operasi* hanya mengembalikan kolom-kolom yang dapat Anda akses. Saat menggunakan tampilan, SELECT operasi* 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 dengan hanya kolom yang dapat diakses SELECT menggunakan*.

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

  • Jika Anda memiliki SELECT atau UPDATE hak istimewa pada tabel atau melihat 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.

  • WITHGRANTOPTIONKlausa 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 SELECT hak istimewa di atas meja employee dan SELECT hak istimewa di 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 SELECT hak istimewa 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 SELECT hak istimewa 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 ASSUMEROLE izin di Amazon Redshift.

Anda menggunakan ASSUMEROLE izin untuk mengontrol izin akses IAM peran bagi pengguna database, peran, atau grup pada perintah sepertiCOPY, UNLOAD EXTERNALFUNCTION, atau CREATEMODEL. Setelah Anda memberikan ASSUMEROLE izin kepada pengguna, peran, atau grup untuk IAM peran, pengguna, peran, atau grup dapat mengambil peran tersebut saat menjalankan perintah. ASSUMEROLEIzin memungkinkan Anda untuk memberikan akses ke perintah yang sesuai sesuai kebutuhan.

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

Untuk mengaktifkan penggunaan ASSUMEROLE izin 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 ASSUMEROLE izin 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 ASSUMEROLE izin, 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 ASSUMEROLE izin. Misalnya, jika pengguna, peran, atau grup diberikan rantai peranRole1,Role2,Role3, Anda tidak dapat menentukan hanya Role1 untuk melakukan operasi.

Jika pengguna mencoba melakukanCOPY,, UNLOAD EXTERNALFUNCTION, atau CREATE MODEL operasi dan belum diberikan ASSUMEROLE izin, 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 IAM peran dan perintah melalui ASSUMEROLE izin, lihatHAS_ASSUMEROLE_PRIVILEGE. Untuk membuat daftar IAM peran dan izin perintah yang telah diberikan kepada pengguna yang Anda tentukan, lihatPG_ _ _ GET _OLEH_ IAM ROLE USER. Untuk mencantumkan pengguna, peran, dan grup yang telah diberikan akses ke IAM peran yang Anda tentukan, lihatPG_ _ _OLEH_ GET _ GRANTEE 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 'amzn-s3-demo-bucket' );