Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog
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 objek, Anda harus memenuhi salah satu kriteria berikut:
-
Jadilah pemilik objek.
-
Jadilah pengguna super.
-
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;
HR tidak dapat memberikan hak istimewa untuk operasi apa pun selain SELECT, atau pada tabel lain selain karyawan.
Sebagai contoh lain, perintah berikut memungkinkan HR pengguna untuk melakukan perintah ALTER pada tabel 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 lain 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 menyiratkan 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 myGrantor IAM terkait. 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 ke peran IAM, hak istimewa individu diberikan dalam Katalog Data yang diaktifkan Lake Formation terkait. Misalnya, GRANT ALL 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 istimewa 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 ketika 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 yang 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 meluas ke kolom yang dapat diakses hanya dalam kasus berikut:
-
Anda tidak dapat membuat tampilan reguler dengan hanya 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 memegang hak istimewa yang sama di tingkat tabel dan tingkat kolom. Misalnya, pengguna tidak
data_scientistdapat memiliki hak istimewa SELECT pada tabelemployeedan hak pilih pada kolomemployee.department. Pertimbangkan hasil berikut saat memberikan hak istimewa yang sama ke tabel dan kolom di dalam tabel:-
Jika pengguna memiliki hak istimewa tingkat tabel pada tabel, maka pemberian hak istimewa yang sama di tingkat kolom tidak berpengaruh.
-
Jika pengguna memiliki hak istimewa tingkat tabel pada tabel, maka mencabut hak istimewa yang sama untuk satu atau lebih kolom tabel mengembalikan kesalahan. Sebagai gantinya, 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 mencabut hak istimewa kolom dan tabel untuk semua kolom pada tabel.
-
-
Anda tidak dapat memberikan hak istimewa tingkat kolom pada tampilan yang mengikat terlambat.
-
Untuk membuat tampilan yang 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 yang terwujud, mirip dengan tampilan biasa.
-
Untuk mencari pemberian hak istimewa tingkat kolom, gunakan tampilan PG _ATTRIBUTE_INFO.
Catatan penggunaan untuk memberikan izin ASSUMEROLE
Catatan penggunaan berikut berlaku untuk memberikan 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, EXTERNAL FUNCTION, atau CREATE MODEL. Setelah Anda memberikan izin ASSUMEROLE kepada pengguna, peran, atau grup untuk peran IAM, pengguna, peran, atau grup dapat mengambil peran itu saat menjalankan perintah. Izin ASSUMEROLE memungkinkan Anda untuk memberikan akses ke perintah yang sesuai sesuai kebutuhan.
Hanya superuser database yang dapat memberikan atau mencabut izin ASSUMEROLE untuk pengguna, peran, dan grup. Seorang superuser selalu mempertahankan izin ASSUMEROLE.
Untuk mengaktifkan penggunaan izin ASSUMEROLE untuk 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 individual 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 ini muncul.
ERROR: User awsuser does not have ASSUMEROLE permission on IAM role "arn:aws:iam::123456789012:role/RoleA" for COPY
Untuk membuat daftar 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, lihatPG_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 langsung memberikan atau mencabut izin yang terkait dengan fungsi ML. Fungsi ML milik model ML dan izin dikendalikan melalui model. Sebagai gantinya, Anda dapat memberikan izin yang terkait dengan model ML. Contoh berikut menunjukkan cara memberikan izin kepada semua pengguna untuk menjalankan fungsi ML yang terkait dengan modelcustomer_churn.
GRANT EXECUTE ON MODEL customer_churn TO PUBLIC;
Anda juga dapat memberikan semua izin kepada pengguna untuk model MLcustomer_churn.
GRANT ALL on MODEL customer_churn TO ml_user;
Pember EXECUTE ian izin yang terkait dengan fungsi ML akan gagal jika ada fungsi ML dalam skema, bahkan jika fungsi ML itu sudah memiliki EXECUTE izin melaluiGRANT 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' );