您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關怎么在Postgres中創建一個Role并賦予權限,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
CREATE USER <role_name> PASSWORD '<role_password>';
賦予database所有權限
GRANT ALL ON DATABASE <db_name> TO <role_name>;
賦予只讀權限 (不能再db level直接賦予SELECT權限)
GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <role_name>;
SELECT * FROM information_schema.role_table_grants;
補充:PostgreSql角色、用戶創建
數據庫角色與操作系統用戶的觀念完全不同,其可以方便的維護數據庫,但不是必須的。
創建數據庫角色
CREATE ROLE name;
刪除存在的角色
DROP ROLE name;
創建和刪除用戶
CREATE USER name; dropuser name;
檢查存在的數據庫角色
SELECT rolname FROM pg_roles;
\du #用這個命令也可以查看
數據庫默認用戶
數據庫在安裝完成后會在操作系統以及數據庫中都建立一個默認的用戶postgres,這個角色是“超級用戶”,想使用數據庫的更多功能,必須先用這個用戶連接數據庫。
數據庫連接命令
psql -U name;
數據庫角色有大量的屬性,這些屬性定義了角色的數據庫登錄以及操作權限。
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
登錄權限
LOGIN屬性用于賦予角色擁有連接數據庫權限,命令二選一
CREATE ROLE name LOGIN; CREATE USER name;
CREATE USER 和CREATE ROLE幾乎相同,除了CREATE USER默認帶有登錄權限,CREATE ROLE沒有。
超級用戶
超級用戶擁有數據庫的所有權限,必須小心超級用戶的權限賦予,命令如下
CREATE ROLE name SUPERUSER;
創建數據庫權限
CREATE ROLE name CREATEDB;
創建角色權限
CREATE ROLE name CREATEROLE;
初始化復制
CREATE ROLE name REPLICATION LOGIN;
密碼
密碼是用戶登錄數據庫的客戶端認證方式。密碼創建后采用md5加密算法加密。
CREATE ROLE name PASSWORD 'string';
更改權限
ALTER ROLE name SET enable_indexscan TO off;
角色組類似于操作系統的組權限,可以非常方便的對組內成員的權限進行管理。
可以用過GRANT和REVOKE操作進行權限的賦予和回收。
GRANT group_role TO role1, ... ; REVOKE group_role FROM role1, ... ;
以上就是怎么在Postgres中創建一個Role并賦予權限,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。