您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

PostgreSQL的用户、角色和权限管理

2024/4/18 7:08:08发布5次查看
postgresql权限分为两部分,一部分是ldquo;系统权限rdquo;或者数据库用户的属性,可以授予role或user(两者区别在于login权限)
);一部分为数据库对象上的操作权限。对超级用户不做权限检查,其它走acl。对于数据库对象,开始只有所有者和超级用户可以做任何操作,其它走acl。。
可以用下面的命令创建和删除角色,
create role name;
drop role name;
为了方便,也可以在 shell 命令上直接调用程序 createuser 和 dropuser,这些工具对相应命令提供了封装:
createuser name
dropuser name
数据库对象上的权限有:select,insert, update,delete,rule, references,trigger,create, temporary,,execute,和 usage等,具体见下面定义
of privilege bits */
#define acl_insert (1/* forrelations */
#defineacl_select (1
#defineacl_update (1
#defineacl_delete (1
#defineacl_truncate (1
#defineacl_references (1
#defineacl_trigger (1
#defineacl_execute (1/* for functions */
#defineacl_usage (1/* for languages, namespaces, fdws, and
* servers */
#defineacl_create (1/* for namespaces and databases */
#defineacl_create_temp (1/* for databases */
#defineacl_connect (1/* for databases */
#definen_acl_rights 12 /* 1plus the last 1
#defineacl_no_rights 0
/*currently, select ... for update/for share requires update privileges */
#defineacl_select_for_update acl_update
我们可以用特殊的名字 public 把对象的权限赋予系统中的所有角色。 在权限声明的位置上写 all,表示把适用于该对象的所有权限都赋予目标角色。
beigang=# grantall on schema csm_ca to public;
grant
beigang=# revoke all on schema csm_ca frompublic;
revoke
beigang=#
每种对象的all权限定义如下:
/*
* bitmasks defining allrights for each supported object type
*/
#defineacl_all_rights_column (acl_insert|acl_select|acl_update|acl_references)
#defineacl_all_rights_relation (acl_insert|acl_select|acl_update|acl_delete|acl_truncate|acl_references|acl_trigger)
#defineacl_all_rights_sequence (acl_usage|acl_select|acl_update)
#defineacl_all_rights_database (acl_create|acl_create_temp|acl_connect)
#define acl_all_rights_fdw (acl_usage)
#defineacl_all_rights_foreign_server (acl_usage)
#defineacl_all_rights_function (acl_execute)
#defineacl_all_rights_language (acl_usage)
#defineacl_all_rights_largeobject (acl_select|acl_update)
#defineacl_all_rights_namespace (acl_usage|acl_create)
#defineacl_all_rights_tablespace (acl_create)
用户的属性可参见下图:
供访问数据库角色有关信息的接口。 它只是一个 pg_authid 表的公开可读部分的视图,把口令字段用空白填充了。
table 42-39.pg_roles字段
名字
类型
引用
描述
rolname
name
 角色名
rolsuper
bool
 有超级用户权限的角色
rolcreaterole
bool
 可以创建更多角色的角色
rolcreatedb
bool
 可以创建数据库的角色
rolcatupdate
bool
 可以直接更新系统表的角色。(除非这个字段为真,否则超级用户也不能干这个事情。)
rolcanlogin
bool
 可以登录的角色,也就是说,这个角色可以给予初始化会话认证的标识符。
rolpassword
text
 不是口令(总是 ********)
rolvaliduntil
timestamptz
 口令失效日期(只用于口令认证);如果没有失效期,为 null
rolconfig
text[]
 运行时配置变量的会话缺省
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录