linux postgresql的使用者角色許可權

2022-08-04 09:54:08 字數 2362 閱讀 8432

postgresql是通過角色來管理資料庫訪問許可權的,我們可以將乙個角色看成是乙個資料庫使用者,或者一組資料庫使用者。角色可以擁有資料庫物件,如表、索引,也可以把這些物件上的許可權賦予其它角色,以控制哪些使用者對哪些物件擁有哪些許可權。

一、資料庫角色:

1. 建立角色:

create rolerole_name;

2. 刪除角色:

drop rolerole_name;

3. 查詢角色:

檢查系統表pg_role,如:

select usename frompg_role;

也可以在psql中執行\du命令列出所有角色。

二、角色屬性:

乙個資料庫角色可以有一系列屬性,這些屬性定義他的許可權,以及與客戶認證系統的互動。

1. 登入許可權:

只有具有login屬性的角色才可以用於資料庫連線,因此我們可以將具有該屬性的角色視為登入使用者,建立方法有如下兩種:

create rolenamelogin password'123456『;

create usernamepassword'123456';

2. 超級使用者:

資料庫的超級使用者擁有該資料庫的所有許可權,為了安全起見,我們最好使用非超級使用者完成我們的正常工作。和建立普通使用者不同,建立超級使用者必須是以超級使用者的身份執行以下命令:

create rolenamesuperuser;

3. 建立資料庫:

角色要想建立資料庫,必須明確賦予建立資料庫的屬性,見如下命令:

create rolenamecreatedb;

4. 建立角色:

乙個角色要想建立更多角色,必須明確給予建立角色的屬性,見如下命令:

create rolenamecreaterole;

三、許可權:

資料庫物件在被建立時都會被賦予乙個所有者,通常而言,所有者就是執行物件建立語句的角色。對於大多數型別的物件,其初始狀態是只有所有者(或超級使用者)可以對該物件做任何事情。如果要允許其它使用者可以使用該物件,必須賦予適當的許可權。postgresql中預定義了許多不同型別的內建許可權,如:select、insert、update、delete、rule、references、trigger、create、temporary、execute和usage

我們可以使用grant命令來賦予許可權,如:

grant update onaccountstojoe;

對於上面的命令,其含義為將accounts表的update許可權賦予joe角色。此外,我們也可以用特殊的名字public把物件的許可權賦予系統中的所有角色。在許可權宣告的位置上寫all,表示把適用於該物件的所有許可權都賦予目標角色。

要撤銷許可權,使用合適的revoke命令:

revoke all onaccountsfrom public;

其含義為:對所有角色(public)撤銷在accounts物件上的所有許可權(all)。

四、角色成員:

在系統的使用者管理中,通常會把多個使用者賦予乙個組,這樣在設定許可權時只需給該組設定即可,撤銷許可權時也是從該組撤消。在postgresql中,首先需要建立乙個代表組的角色,之後再將該角色的membership許可權賦給獨立的使用者角色即可。

1. 建立乙個組角色,通常而言,該角色不應該具有login屬性,如:

create role name;    

2. 使用grant和revoke命令新增和撤消許可權:

grant group_role to role1, ... ;

revoke group_role from role1, ... ;

乙個角色成員可以通過兩種方法使用組角色的許可權,如:

1. 每個組成員都可以用set role命令將自己臨時"變成"該組成員,此後再建立的任何物件的所有者將屬於該組,而不是原有的登入使用者。

2. 擁有inherit屬性的角色成員自動繼承它們所屬角色的許可權。

見如下示例:

create role joe logininherit;  --inherit是預設屬性。

Oracle 角色許可權 建立使用者 賦權

1 許可權 使用者 角色許可權 sysdba 可以改變字符集 建立刪除資料庫 登入之後使用者是sys 可以啟動和關閉資料庫 sysoper 不可改變字符集 不能創 刪資料庫 登陸之後使用者是public 可以啟動和關閉資料庫 dba 只有在啟動資料庫後才能執行各種管理工作。登入oracle資料庫有三...

SQL server 建立角色,分配使用者 設定許可權

建立角色 exec sp addrole extenduserlist 給角色新增許可權 grant select on ot user to extenduserlist 切換到另乙個資料庫 grant select on hr employee to extenduserlist 增加角色crm...

Linux 建立使用者角色並新增ssh登入許可權

1 root許可權下 useradd home xiaoli xiaoli 2passwd xiaoli 3cd home mkdir xiaoli 4 chown xiaoli xiaoli 5 切到xiaoli的角色 su xiaoli 6cd home xiaoli then mkdir ss...