PostgreSQL學習筆記(九) 用戶、角色、權(quán)限管理

PostgreSQL是一個多用戶數(shù)據(jù)庫,可以為不同用戶指定允許的權(quán)限。

  • 角色
    PostgreSQL使用角色的概念管理數(shù)據(jù)庫訪問權(quán)限。 根據(jù)角色自身的設置不同,一個角色可以看做是一個數(shù)據(jù)庫用戶,或者一組數(shù)據(jù)庫用戶。 角色可以擁有數(shù)據(jù)庫對象(比如表)以及可以把這些對象上的權(quán)限賦予其它角色, 以控制誰擁有訪問哪些對象的權(quán)限。
    操作角色的語句:
    create role db_role1; /--創(chuàng)建角色/
    drop role db_role1; /--刪除角色/
    select rolename from pg_roles; /--查看所有角色/
    /du --在命令格式下查看所有角色的命令

  • 角色的權(quán)限
    一個數(shù)據(jù)庫角色可以有很多權(quán)限,這些權(quán)限定義了角色和擁有角色的用戶可以做的事情。
    create role db_role1 LOGIN; --創(chuàng)建具有登錄權(quán)限的角色db_role1
    create role db_role2 SUPERUSER; --創(chuàng)建具有超級用戶權(quán)限的角色
    create role db_role3 CREATEDB; --創(chuàng)建具有創(chuàng)建數(shù)據(jù)庫權(quán)限的角色
    create role db_role4 CREATEROLE --創(chuàng)建具有創(chuàng)建角色權(quán)限的角色
    alter role db_role1 nologin nocreatedb; --修改角色取消登錄和創(chuàng)建數(shù)據(jù)庫權(quán)限

  • 用戶
    其實用戶和角色都是角色,只是用戶是具有登錄權(quán)限的角色。
    create user db_user1 password '123'; --創(chuàng)建用戶
    create role db_user1 password '123' LOGIN; --同上一句等價
    drop user db_user1; --刪除用戶
    alter user db_user1 password '123456'; --修改密碼
    alter user db_user1 createdb createrole; --對用戶授權(quán)

  • 賦予角色控制權(quán)限
    我們可以使用GRANT 和REVOKE命令賦予用戶角色,來控制權(quán)限。
    create user db_user1; --創(chuàng)建用戶1
    create user db_user2; --創(chuàng)建用戶2
    create role db_role1 createdb createrole; --創(chuàng)建角色1
    grant db_role1 to db_user1,db_user2; --給用戶1,2賦予角色1,兩個用戶就擁有了創(chuàng)建數(shù)據(jù)庫和創(chuàng)建角色的權(quán)限
    revoke db_role1 from db_user1; --從用戶1移除角色1,用戶不在擁有角色1的權(quán)限

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • 一、源題QUESTION 1The instance abnormally terminates because ...
    貓貓_tomluo閱讀 1,613評論 0 2
  • 一、源題QUESTION 36Your database is open and the LISTENER lis...
    貓貓_tomluo閱讀 1,256評論 0 2
  • 一、oracle中的用戶 系統(tǒng)用戶:sys、system(系統(tǒng)創(chuàng)建的用戶) 登錄命令:sqlplus sys/密碼...
    lingoling閱讀 1,637評論 0 0
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,740評論 18 399
  • http://www.cnblogs.com/zhoujinyi/p/4610050.html 創(chuàng)建用戶,用戶是跟...
    bbmm閱讀 1,163評論 0 0