創(chuàng)建Role
CREATE USER role_name> PASSWORD 'role_password>';
賦予權(quán)限
賦予database所有權(quán)限
GRANT ALL ON DATABASE db_name> TO role_name>;
賦予只讀權(quán)限 (不能再db level直接賦予SELECT權(quán)限)
GRANT SELECT ON ALL TABLES IN SCHEMA schema_name> TO role_name>;
查看權(quán)限
SELECT * FROM information_schema.role_table_grants;
補(bǔ)充:PostgreSql角色、用戶(hù)創(chuàng)建
1、數(shù)據(jù)庫(kù)角色
數(shù)據(jù)庫(kù)角色與操作系統(tǒng)用戶(hù)的觀念完全不同,其可以方便的維護(hù)數(shù)據(jù)庫(kù),但不是必須的。
創(chuàng)建數(shù)據(jù)庫(kù)角色
刪除存在的角色
創(chuàng)建和刪除用戶(hù)
CREATE USER name;
dropuser name;
檢查存在的數(shù)據(jù)庫(kù)角色
SELECT rolname FROM pg_roles;
\du #用這個(gè)命令也可以查看
數(shù)據(jù)庫(kù)默認(rèn)用戶(hù)
數(shù)據(jù)庫(kù)在安裝完成后會(huì)在操作系統(tǒng)以及數(shù)據(jù)庫(kù)中都建立一個(gè)默認(rèn)的用戶(hù)postgres,這個(gè)角色是“超級(jí)用戶(hù)”,想使用數(shù)據(jù)庫(kù)的更多功能,必須先用這個(gè)用戶(hù)連接數(shù)據(jù)庫(kù)。
數(shù)據(jù)庫(kù)連接命令
2、數(shù)據(jù)庫(kù)角色屬性
數(shù)據(jù)庫(kù)角色有大量的屬性,這些屬性定義了角色的數(shù)據(jù)庫(kù)登錄以及操作權(quán)限。
CREATE ROLE name [ [ WITH ] option [ ... ] ]
where option can be:
SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE
| CREATEUSER | NOCREATEUSER
| INHERIT | NOINHERIT
| LOGIN | NOLOGIN
| REPLICATION | NOREPLICATION
| CONNECTION LIMIT connlimit
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
| VALID UNTIL 'timestamp'
| IN ROLE role_name [, ...]
| IN GROUP role_name [, ...]
| ROLE role_name [, ...]
| ADMIN role_name [, ...]
| USER role_name [, ...]
| SYSID uid
登錄權(quán)限
LOGIN屬性用于賦予角色擁有連接數(shù)據(jù)庫(kù)權(quán)限,命令二選一
CREATE ROLE name LOGIN;
CREATE USER name;
CREATE USER 和CREATE ROLE幾乎相同,除了CREATE USER默認(rèn)帶有登錄權(quán)限,CREATE ROLE沒(méi)有。
超級(jí)用戶(hù)
超級(jí)用戶(hù)擁有數(shù)據(jù)庫(kù)的所有權(quán)限,必須小心超級(jí)用戶(hù)的權(quán)限賦予,命令如下
CREATE ROLE name SUPERUSER;
創(chuàng)建數(shù)據(jù)庫(kù)權(quán)限
CREATE ROLE name CREATEDB;
創(chuàng)建角色權(quán)限
CREATE ROLE name CREATEROLE;
初始化復(fù)制
CREATE ROLE name REPLICATION LOGIN;
密碼
密碼是用戶(hù)登錄數(shù)據(jù)庫(kù)的客戶(hù)端認(rèn)證方式。密碼創(chuàng)建后采用md5加密算法加密。
CREATE ROLE name PASSWORD 'string';
更改權(quán)限
ALTER ROLE name SET enable_indexscan TO off;
3、角色組
角色組類(lèi)似于操作系統(tǒng)的組權(quán)限,可以非常方便的對(duì)組內(nèi)成員的權(quán)限進(jìn)行管理。
可以用過(guò)GRANT和REVOKE操作進(jìn)行權(quán)限的賦予和回收。
GRANT group_role TO role1, ... ;
REVOKE group_role FROM role1, ... ;
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- postgresql 切換 log、xlog日志的實(shí)現(xiàn)
- postgresql 利用xlog進(jìn)行熱備操作
- Postgresql中xlog生成和清理邏輯操作
- Postgresql去重函數(shù)distinct的用法說(shuō)明
- postgresql 12版本搭建及主備部署操作
- 開(kāi)源數(shù)據(jù)庫(kù)postgreSQL13在麒麟v10sp1源碼安裝過(guò)程詳解