創(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角色、用戶創(chuàng)建
1、數(shù)據(jù)庫角色
數(shù)據(jù)庫角色與操作系統(tǒng)用戶的觀念完全不同,其可以方便的維護(hù)數(shù)據(jù)庫,但不是必須的。
創(chuàng)建數(shù)據(jù)庫角色
刪除存在的角色
創(chuàng)建和刪除用戶
CREATE USER name;
dropuser name;
檢查存在的數(shù)據(jù)庫角色
SELECT rolname FROM pg_roles;
\du #用這個(gè)命令也可以查看
數(shù)據(jù)庫默認(rèn)用戶
數(shù)據(jù)庫在安裝完成后會在操作系統(tǒng)以及數(shù)據(jù)庫中都建立一個(gè)默認(rèn)的用戶postgres,這個(gè)角色是“超級用戶”,想使用數(shù)據(jù)庫的更多功能,必須先用這個(gè)用戶連接數(shù)據(jù)庫。
數(shù)據(jù)庫連接命令
2、數(shù)據(jù)庫角色屬性
數(shù)據(jù)庫角色有大量的屬性,這些屬性定義了角色的數(shù)據(jù)庫登錄以及操作權(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ù)庫權(quán)限,命令二選一
CREATE ROLE name LOGIN;
CREATE USER name;
CREATE USER 和CREATE ROLE幾乎相同,除了CREATE USER默認(rèn)帶有登錄權(quán)限,CREATE ROLE沒有。
超級用戶
超級用戶擁有數(shù)據(jù)庫的所有權(quán)限,必須小心超級用戶的權(quán)限賦予,命令如下
CREATE ROLE name SUPERUSER;
創(chuàng)建數(shù)據(jù)庫權(quán)限
CREATE ROLE name CREATEDB;
創(chuàng)建角色權(quán)限
CREATE ROLE name CREATEROLE;
初始化復(fù)制
CREATE ROLE name REPLICATION LOGIN;
密碼
密碼是用戶登錄數(shù)據(jù)庫的客戶端認(rèn)證方式。密碼創(chuàng)建后采用md5加密算法加密。
CREATE ROLE name PASSWORD 'string';
更改權(quán)限
ALTER ROLE name SET enable_indexscan TO off;
3、角色組
角色組類似于操作系統(tǒng)的組權(quán)限,可以非常方便的對組內(nèi)成員的權(quán)限進(jìn)行管理。
可以用過GRANT和REVOKE操作進(jìn)行權(quán)限的賦予和回收。
GRANT group_role TO role1, ... ;
REVOKE group_role FROM role1, ... ;
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- postgresql 切換 log、xlog日志的實(shí)現(xiàn)
- postgresql 利用xlog進(jìn)行熱備操作
- Postgresql中xlog生成和清理邏輯操作
- Postgresql去重函數(shù)distinct的用法說明
- postgresql 12版本搭建及主備部署操作
- 開源數(shù)據(jù)庫postgreSQL13在麒麟v10sp1源碼安裝過程詳解