作為一款資料視覺化軟體,使用者更多的是利用redash中文版來查詢分析資料來源,而不需要編輯變更資料內容,在建立資料來源時,配置乙個帶有許可權控制的資料庫使用者,能更好地保障資料安全,避免使用者誤操作導致丟失資料。下面以postgresql資料來源為例,演示如何配置唯讀資料模式。
首先建立乙個新資料庫命名為business,擁有者為admin,資料庫中建立三個表employees,jobs和customers,並填入資料。資料庫管理員能控制公共使用者的所有許可權,直接撤消公共角色的許可權會影響當前所有使用者和角色。因此在實際架構中,處理方式一般是在資料庫中設定一部分唯讀許可權的角色,同時系統也保留其他不同許可權的角色。
1、建立唯讀角色 readonly
create role readonly;
grant connect on database defaultbusiness to readonly;
grant usage on schema business to readonly;
在postgresql的操作中,在postgresql的操作中,配置只允許訪問usage模式中包含的物件,因此唯讀模式中查詢功能將不受影響。
2、授予新角色許可權
grant select on table "business"."employees" to readonly;
grant select on table "business"."jobs" to readonly;
grant select (id, name) on table business.customers to readonly;
前兩條語句是對employees和jobs表賦予完全讀取許可權。
第三條語句限制readonly角色僅能檢視customers表的id和姓名,表中的所有其他欄位均被隱藏,customers其他資訊字段資料只能由管理員檢視,這樣可確保系統中其他的使用者不會有意地看到該資料。如果使用者嘗試執行select * from business,資料庫將引發許可權錯誤,只有查詢id和名稱欄位能顯示出來。
3、在資料庫中建立名為redash_user的唯讀使用者,用於連線到redash中文版
create user redash_user with password 'secret';
grant readonly to redash_user;
新增資料來源時設定介面需要填寫使用者名稱redash_user,「secret」表示資料庫密碼,這裡可以設定乙個較強的密碼來替換。
4、使用新的唯讀使用者連線到postgres
連線redash中文版很簡單。只需提供主機名,埠和資料庫使用者名稱、密碼即可,示例如下。
接下來,我們可以執行一些查詢來檢查許可權情況:
能夠返回資料。
下面執行:
許可權錯誤!該readonly角色不允許插入資料。
執行從customers表中查詢:select * from business.customers;
返回許可權錯誤,因為唯讀角色只能訪問特定的列。
執行:select id, name from my.customers;
執行後發現能夠查詢到指定資料,因為我們僅請求了唯讀使用者有權查詢的列名。
PostgreSQL許可權問題
許可權 如果你建立了乙個資料庫物件,那麼你就成為它的所有者。預設時,只有物件的所有者可以在物件上做任何事情。為了允許其它使用者使用它,我們必須賦予他們許可權。不過超級使用者總是可以操作任何物件。有好多種不同的許可權 select,insert,update,delete,references,tri...
postgresql許可權修改
兩處修改 1.postgresql.conf listen addresses項值設定為 在9.0 windows版中,該項配置已經是 無需修改。2.pg hba.conf host all all 127.0.0.1 32 md5行下新增以下配置 host all all 0.0.0.0 0 md...
使用者以sysdba許可權無法登陸
資料庫所有具有dba許可權的使用者都不能以sysdba登入,提示說許可權不夠 首先dba是乙個角色,而sysdba是乙個許可權。dba角色包含了資料庫中絕大多數的許可權,但是不包括sysdba許可權。具有sysdba許可權的使用者可以開啟或者關閉資料庫。當資料庫沒有開啟時,任何儲存在資料庫中的資料都...