標籤:建立資料庫 名稱 std 其他 命令列 zha localhost sql 令行
postgresql使用者管理:
預設使用者:
postgres安裝完成後,會自動在作業系統和postgres資料庫中分別建立一個名為postgres的使用者以及一個同樣名為postgres的資料庫。
1、組角色:
一個組角色可以看作一組資料庫使用者。組角色可以擁有資料庫物件(比如表),並可以把這些對象上的許可權賦予其他角色,以控制誰擁有訪問哪些對象的許可權。
--建立角色:
create role role_emp;
--查看系統中的角色,如:
select rolname from pg_roles;
--修改組角色名稱的文法:
alter role 組角色名稱 rename to 新的組角色名稱;
--刪除群組角色
drop role 組角色的名稱;
2、角色的各種許可權
①:登入許可權:login
--建立具有登入許可權的組角色,如:
create role zhang login;
②:superuser(超級使用者)
superuser超級使用者擁有對資料庫操作的最高許可權,可以完成對資料庫的所有許可權檢查。
--建立資料庫超級使用者,如:
create role zhang superuser;
注意:只有超級使用者才能有許可權建立超級使用者。
③:createdb建立資料庫
--建立具有建立資料庫許可權的組角色,如
create role zhang createdb;
④:createrole建立角色
--建立具有建立角色許可權的角色,如:
create role zhang createrole;
⑤:口令
在客戶認證方法要求與資料庫建立串連時,需要口令許可權。常見的認證方法包括:password,md5,crypt。
--建立具有口令許可權的角色,如:
create role zhang password '123456';
3、賬戶管理
方式1:在系統命令列中使用createuser命令中建立
createuser username ;如[[email protected] ~]$ createuser zhangfeng
方式2:在PostgresSQL命令列中使用CREATE ROLE指令建立
CREATE ROLE rolename;
方式3:在PostgresSQL命令列中使用CREATE USER指令建立
CREATE USER username;
注意:CREATE USER和CREATE ROLE的區別在於,CREATE USER指令建立的使用者預設是有登入許可權的,而CREATE ROLE沒有。
例子:建立使用者zhangfeng 密碼123456,並且有建立資料庫許可權和建立角色許可權,如:
create user zhangfeng password '123456' createdb createrole;
--刪除使用者
drop user zhangfeng;
--修改使用者密碼
alter user zhangfeng password '123456';
3、組角色和使用者權限管理
--對組角色授權:
alter role 角色名稱 許可權1,許可權2,,,;
如:給ro_emp角色添加建立資料表和建立角色的許可權:
alter role ro_emp createdb createrole;
--對使用者授權
alter user 使用者名稱 許可權1,許可權2,,,;
如:給使用者添加建立資料表和建立角色許可權,
alter user zhangfeng createdb createrole;
--收回組角色許可權
將role_emp角色的建立資料表和建立角色許可權收回,如:
alter role role_emp nocreatedb nocreaterole;
--收回使用者權限
alter user zhangfeng nocreatedb nocreaterole;
4、資料庫許可權管理
--修改資料庫的擁有者
alter database 資料庫名稱 owner to 擁有者名字;
如:
alter database testdb owner to zhangfeng;
--增加使用者的資料表許可權
grant 許可權 on 資料表 to 使用者名稱;
如:
grant update on emp to zhangfeng;
postgresql使用者管理