View a markdown version of this page

MEMILIKI HAK ISTIMEWA TABEL_ - Amazon Redshift

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 yang diterbitkan pada 30 Juni 2025.

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