PostgreSQL 登入角色與角色成員間的關係
更新:2007-04-09
對映章節:
http://www.postgresql.org/docs/8.2/static/user-manag.html
詞彙:ROLE(角色), USER(用戶/使用者)
內容:
PostgreSQL 同如 Oracle 對 User 的定義, 在 8.1 版後全採用 ROLE(角色)的關念.
User 在登入到 DBMS 時, 可以是一個 ROLE, 也可在權限許可的情況下, 任意變更自己的角色成另一個 ROLE 且擁有該 ROLE 的物件權限, 就好比一個普通人進了戲團, 他可以扮演任何的戲角, 也相對取得這戲角在戲中的權限與地位一般.
ROLE 的關念取代了原有的 USER/GROUP 的設計, 以下我做了幾個簡單的示範, 來協助您學習更多 PostgreSQL 的理念:
- ROLE 是物件(Object/對象), 屬於 DDL(資料定義語言)的範圍, 故一樣擁有 CRETAT, DROP, ALTER 等方法.
- CREATE ROLE [name] ; -- 創建角色成員(membership/group role), 相當於以前的 Group.
- CREATE ROLE [name] LOGIN ; -- 不同於第2點, 這是在創建一個登入系統的角色, 相當於以前的 User, 亦可用 CREATE USER [name]; 來替代 SQL.
pg_roles : 會列如全部 ROLE (相當於以前的 Group + User 清單).
pg_group : 列出上述第2點的內容清單.
pg_user : 列出上述第3點的內容清單.
延伸閱讀(Link):
沒有留言:
張貼留言