您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)怎么在Postgres中創(chuàng)建一個Role并賦予權(quán)限,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
CREATE USER <role_name> PASSWORD '<role_password>';
賦予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>;
SELECT * FROM information_schema.role_table_grants;
補(bǔ)充:PostgreSql角色、用戶創(chuàng)建
數(shù)據(jù)庫角色與操作系統(tǒng)用戶的觀念完全不同,其可以方便的維護(hù)數(shù)據(jù)庫,但不是必須的。
創(chuàng)建數(shù)據(jù)庫角色
CREATE ROLE name;
刪除存在的角色
DROP ROLE name;
創(chuàng)建和刪除用戶
CREATE USER name; dropuser name;
檢查存在的數(shù)據(jù)庫角色
SELECT rolname FROM pg_roles;
\du #用這個命令也可以查看
數(shù)據(jù)庫默認(rèn)用戶
數(shù)據(jù)庫在安裝完成后會在操作系統(tǒng)以及數(shù)據(jù)庫中都建立一個默認(rèn)的用戶postgres,這個角色是“超級用戶”,想使用數(shù)據(jù)庫的更多功能,必須先用這個用戶連接數(shù)據(jù)庫。
數(shù)據(jù)庫連接命令
psql -U name;
數(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;
角色組類似于操作系統(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, ... ;
以上就是怎么在Postgres中創(chuàng)建一個Role并賦予權(quán)限,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。