PostgreSQL数据库角色(五)-创新互联
使用角色的概念管理数据库访问权限。
角色可以是数据库用户和一组数据库用户,可拥有数据库对象。
- 1.数据库角色
独立于操作系统用户。
创建角色: create role name;
删除角色: drop role name;
确定现有角色: select * from pg_roles; 或者\du 列出现有角色。
新安装的数据库默认有一个预定义角色:postgres.
给定客户端连接可以连接的数据库角色集,由客户端身份验证设置决定.
- 2. 角色属性
这些属性定义其权限并与客户端身份验证系统交互。
登录权限(login privilege):
具有login属性的角色才能用作数据库连接的初始角色名称。create role name login;
超级用户状态(superuser status):
数据库超级用户绕过所有权限检查,但登录权限除外. create role name superuser;
database creation
授予角色创建数据库的权限: create role name createdb;
role creation
授予角色创建更多角色的权限: create role name createrole;
initiating replication
授予角色启动流复制的权限: create role name REPLICATION LOGIN;
password
数据库密码与操作系统密码分开 使用时创建角色时指定密码。CREATE ROLE name PASSWORD 'string';
优秀做法:
创建具有CREATEDB和CREATEROLE权限但不是超级用户的角色,然后将此角色用于数据库和角色的所有日常管理.
- 3 角色成员:
可以将权限授予整个组或从组中撤销。
先创建角色: create role name;
组角色存在后,可使用grant和revoke命令添加和删除成员。
grant grouprole to role1...;
revoke grouprole from role1...;
数据库不允许您设置循环成员资格循环。此外,不允许授予角色成员资格 PUBLIC。
例如:
CREATE ROLE joe LOGIN INHERIT;
CREATE ROLE admin NOINHERIT;
CREATE ROLE wheel NOINHERIT;
GRANT admin TO joe;
GRANT wheel TO admin;
组角色的成员可以通过两种方式使用角色的权限.
设置临时组角色: set role name;
重置角色: reset role;
删除组角色: drop role name;
数据库会话可以访问组角色的权限,创建的任何数据库对象都被组角色拥有。
成员角色会继承组角色的权限。
用户在角色执行时不会自动继承权限。PostgreSQL默认为所有角色提供 INHERIT属性.
名称栏目:PostgreSQL数据库角色(五)-创新互联
本文路径:http://jxruijie.cn/article/dcpsho.html
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
名称栏目:PostgreSQL数据库角色(五)-创新互联
本文路径:http://jxruijie.cn/article/dcpsho.html