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.
MEMILIKI HAK ISTIMEWA TABEL_
Meng true embalikan jika pengguna memiliki hak istimewa yang ditentukan untuk tabel yang ditentukan dan mengembalikan false sebaliknya.
Sintaksis
catatan
Ini adalah fungsi leader-node. Fungsi ini mengembalikan kesalahan jika mereferensikan tabel yang dibuat pengguna, tabel sistem STL atau STV, atau tampilan sistem SVV atau SVL. Untuk informasi selengkapnya tentang hak istimewa, lihatHIBAH.
has_table_privilege( [ user, ] table, privilege)
Argumen
- pengguna
-
Nama pengguna untuk memeriksa hak istimewa tabel. Defaultnya adalah memeriksa pengguna saat ini.
- tabel
-
Tabel terkait dengan hak istimewa.
- hak istimewa
-
Hak istimewa untuk memeriksa. Nilai yang valid adalah sebagai berikut:
-
SELECT
-
INSERT
-
UPDATE
-
DELETE
-
MENJATUHKAN
-
REFERENSI
-
Jenis pengembalian
BOOLEAN
Contoh
Kueri berikut menemukan bahwa pengguna TAMU tidak memiliki hak istimewa SELECT pada tabel LISTING.
select has_table_privilege('guest', 'listing', 'select');has_table_privilege --------------------- false
Kueri berikut mencantumkan hak istimewa tabel, termasuk memilih, menyisipkan, memperbarui, dan menghapus, menggunakan output dari tabel katalog pg_tables dan pg_user. Ini adalah sampel saja. Anda mungkin harus menentukan nama skema dan nama tabel dari database Anda. Untuk informasi selengkapnya, lihat Menanyakan tabel katalog.
SELECT tablename ,usename ,HAS_TABLE_PRIVILEGE(users.usename, tablename, 'select') AS sel ,HAS_TABLE_PRIVILEGE(users.usename, tablename, 'insert') AS ins ,HAS_TABLE_PRIVILEGE(users.usename, tablename, 'update') AS upd ,HAS_TABLE_PRIVILEGE(users.usename, tablename, 'delete') AS del FROM (SELECT * from pg_tables WHERE schemaname = 'public' and tablename in ('event','listing')) as tables ,(SELECT * FROM pg_user) AS users;tablename | usename | sel | ins | upd | del ----------+-----------+--------+-------+-------+------- event | john | true | true | true | true event | sally | false | false | false | false event | elsa | false | false | false | false listing | john | true | true | true | true listing | sally | false | false | false | false listing | elsa | false | false | false | false
Kueri sebelumnya juga berisi cross join. Untuk informasi selengkapnya, lihat Contoh JOIN. Untuk menanyakan tabel yang tidak ada dalam public skema, hapus schemaname kondisi dari klausa WHERE dan gunakan contoh berikut sebelum kueri Anda.
SET SEARCH_PATH to 'schema_name';