postgreSQL数据库角色

PostgreSQL使用角色的概念来访问呢数据库,一个角色可以使一个数据库用户,或是一组数据用户,取决于这个角色是怎么设置的。角色可以访问数据库对象,分配对象的权限给别的角色。可以分配成员给另外的组。角色的概念包含用户和组。在8.1版本之前,用户和组是分开的,但现在只是有角色的概念。

创建角色

create role name;

查看存在的角色

select rolname from pg_roles;

为了引导数据库,一个新的初始系统总是包含一个预定义的角色,这个角色总是超级用户,莫热的,有与操作系统用户相同名字用来初始化数据库集群,这个名字一般是postgres,为了创建更多的角色,你必须要先连接到这个初始角色上。

每一个到数据库的连接都使用一些特定角色的名字,这个角色确定了在这个连接中拥有的初始访问权限。对一个特定数据库连接使用的角色名字被初始连接请求的客户来决定。例如,psql使用-U来指定连接的角色。

角色属性

一个数据库角色有一些属性来定义它的权限和与客户认证系统交互

登录权限

只有拥有login属性的角色可以被用来最为数据库连接的初始角色名。有login属性的角色可以被认为是一个数据库用户。为了创建一个login权限的角色,使用:

create role name login;

create user name;

超级用户状态

超级用户忽略所有权限检查,除了登录的。创建超级用户的命令

create role name superuser;

数据库创建

一个角色要创建数据库,一定要明确的给权限。使用下面的命令创建这样的角色

create role name createdb;

角色创建

一个角色要创建更多的角色,一定要明确给权限。create role name createrole;

初始复制

角色要初始化一个流复制,一定要明确的给出权限。create role name replication login;

口令

创建角色的时候给定密码create role name password 'string'.

角色的属性可以使用alter role修改。

一个角色可以有很多运行时配置设置。例如当你连接的时候想要禁用index scans 可以使用下面的语句

alter role myname set enble_indexscan to off;

该命令不会马上设置,在后面的连接中,这些角色就设置了enable_indexscan to off.

移除这些设置,使用alter role rolename reset varname.

角色成员

将用户聚在一起可以方便权限管理,在PostgreSQL中,通过创建角色代表组来实现。为了创建一个组角色,先创建角色

create role name;

一旦组角色存在了,你可以使用grant,revoke来添加删除成员。

grant group_role to role1,..; revoke group_role from role1,..;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值