HAS_TABLE_PRIVILEGE - Amazon Redshift

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

HAS_TABLE_PRIVILEGE

Mengembalikan true jika pengguna memiliki hak istimewa yang ditentukan untuk tabel tertentu dan mengembalikan false sebaliknya.

Sintaks

catatan

Ini adalah fungsi leader-node. Fungsi ini mengembalikan kesalahan jika referensi tabel yang dibuat pengguna, tabel sistem STL atau STV, atau tampilan sistem SVV atau SVL. Untuk informasi lebih lanjut 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 GUEST tidak memiliki hak pilih pada tabel LISTING.

select has_table_privilege('guest', 'listing', 'select'); has_table_privilege --------------------- false

Kueri berikut mencantumkan hak istimewa tabel, termasuk pilih, sisipkan, perbarui, dan hapus, menggunakan output dari tabel katalog pg_tables dan pg_user. Ini hanya sampel. 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 gabungan silang. Untuk informasi selengkapnya, lihat JOIN contoh. 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';