Postgresql用户角色管理

来源:未知 责任编辑:责任编辑 发表时间:2014-05-10 12:29 点击:
 
PG数据库的登录用户和角色是有相互联系的,比起oracle要简单灵活很多。 PG里的登录用户和角色只有一个区别就是是否能登录,即login属性。 
 1.创建登录用户:  www.2cto.com  
CREATE ROLE test LOGIN PASSWORD 'test'
  NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
create role 与 create user 命令是等效的,只是create user 默认是login的,而前者默认是非login的 
 
2.查看系统内用户 
psql终端可以用\du或\du+表示 也可查看系统表:select * from pg_roles; 
 
3.应用 登录用户与pg_hba.conf文件中的设置有关,可以设置其以某种方式登录某个主机的某个数据库。超级用户不受此限制.用户可以设置属性,如ALTER ROLE role_name SET enable_indexscan TO off;可以让这个用户去执行SQL时不走索引, 重置:alter role role_name reset xxx; 暂时没发现此用处。 
 
4.角色属性 
 login,superuser,createdb,createrole,replication,passwod,inherit。 
createrole权限可以允许其创建或删除其他普通的用户角色(超级用户除外) 
replication权限是做流复制的时候用到的一个用户属性,一般单独设定。 
passwd在登录时要求指定密码时才会起作用,比如md5或者passwd模式,跟客户端的连接认证方式有关   www.2cto.com  
inherit是用户组对组员的一个继承标志,成员可以继承用户组的权限特性 
 
5.用户组 
当很多用户使用时,需要对每一个人都授权是件比较麻烦的事情,用户组就是起到将很多用户拉到一个组里,对这个用户组授权来解决每个用户都需要授权的作用。 
创建组用户,一般不让他登录: 
create role group_name; 
增加组用户: 
grant group_name to role1; 
grant group_name to role2; 
删除组用户 
revoke group_name from role1; 
revoke group_name from role2; 
 
更复杂地,可以设置用户组的组。对于死循环的用户组是不允许的,如a属于b,又包含a 
 
 
 
作者 kenyon
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Request.ServerVariables 参数大全
    • 执行全文索引时出现权限不足的解决方法
    • 导入excel文件处理流程节点的解决方案
    • 查看sql修改痕迹(SQL Change Tracking on Table)
    • MongoDB安装为Windows服务方法与注意事项
    • App数据层设计及云存储使用指南
    • PostgreSQL启动过程中的那些事三:加载GUC参数
    • 写给MongoDB开发者的50条建议Tip1
    • Percolator与分布式事务思考(二)
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1