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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.