postgresql自己總結用戶管理

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 ;如[pguser@localhost ~]$ 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;
-----------------------------------
進入
su - postgres;
psql
show data_directory;
/var/lib/pgsql/14/data
 
\q退出pg
exit退出shell
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章