我無法檢視 Amazon Redshift 叢集內由其他使用者所產生的系統資料表資料。我要如何查看這些資料表?
簡短描述
根據預設,Amazon Redshift 一般使用者沒有權限檢視其他使用者的資料。只有 Amazon Redshift 資料庫超級使用者才有權檢視所有資料庫。
解決方案
您可以為一般使用者新增具有 UNRESTRICTED (不受限制) 存取權的 SYSLOG ACCESS 參數,讓一般使用者可檢視系統表格中其他使用者所產生的資料。
**注意:**具有 SYSLOG ACCESS 的一般使用者無法檢視超級使用者資料表。只有超級使用者可以檢視其他超級使用者資料表。
1. 以超級使用者身分連線到 Amazon Redshift 資料庫。
2. 執行類似下列內容的 SQL 命令 ALTER USER:
test=# ALTER USER testuser WITH SYSLOG ACCESS UNRESTRICTED;
ALTER USER
注意:ALTER USER 的必要權限為超級使用者、具有 ALTER USER 權限的使用者,以及想要變更自己密碼的使用者。
一般使用者現在具有 UNRESTRICTED (不受限制) 存取權的 SYSLOG ACCESS。
3. 中斷以超級使用者身分與 Amazon Redshift 資料庫的連線。
4. 以具有 UNRESTRICTED (不受限制) 存取權限 SYSLOG ACCESS 的一般使用者身分,連線到 Amazon Redshift 資料庫。
5. 執行類似下列內容的 SQL 命令,測試一般使用者的存取權限:
test=> select * from stv_inflight;
-[ RECORD 1 ]--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
userid | 100
slice | 12811
query | 3036
label | default
xid | 35079530
pid | 1073746910
starttime | 2022-09-15 07:09:15.894317
text | select * from my_schema.dw_lu_tiers_test a, my_schema.dw_lu_tiers_test;
suspended | 0
insert_pristine | 0
concurrency_scaling_status | 0
-[ RECORD 2 ]--------------+---------------------------------------------------------------------------------------------------------------------------------------------------
userid | 181
slice | 12811
query | 3038
label | default
xid | 35079531
pid | 1073877909
starttime | 2022-09-15 07:09:17.694285
text | select * from stv_inflight;
suspended | 0
insert_pristine | 0
concurrency_scaling_status | 0
在範例輸出中,可看到一般使用者現在有權檢視其他使用者的資料表。