Postgres 创建Role并赋予权限的操作
创建Role
CREATEUSERPASSWORD' ';
赋予权限
赋予database所有权限
GRANTALLONDATABASETO ;
赋予只读权限(不能再dblevel直接赋予SELECT权限)
GRANTSELECTONALLTABLESINSCHEMATO ;
查看权限
SELECT*FROMinformation_schema.role_table_grants;
补充:PostgreSql角色、用户创建
1、数据库角色
数据库角色与操作系统用户的观念完全不同,其可以方便的维护数据库,但不是必须的。
创建数据库角色
CREATEROLEname;
删除存在的角色
DROPROLEname;
创建和删除用户
CREATEUSERname; dropusername;
检查存在的数据库角色
SELECTrolnameFROMpg_roles;
\du#用这个命令也可以查看
数据库默认用户
数据库在安装完成后会在操作系统以及数据库中都建立一个默认的用户postgres,这个角色是“超级用户”,想使用数据库的更多功能,必须先用这个用户连接数据库。
数据库连接命令
psql-Uname;
2、数据库角色属性
数据库角色有大量的属性,这些属性定义了角色的数据库登录以及操作权限。
CREATEROLEname[[WITH]option[...]] whereoptioncanbe: SUPERUSER|NOSUPERUSER |CREATEDB|NOCREATEDB |CREATEROLE|NOCREATEROLE |CREATEUSER|NOCREATEUSER |INHERIT|NOINHERIT |LOGIN|NOLOGIN |REPLICATION|NOREPLICATION |CONNECTIONLIMITconnlimit |[ENCRYPTED|UNENCRYPTED]PASSWORD'password' |VALIDUNTIL'timestamp' |INROLErole_name[,...] |INGROUProle_name[,...] |ROLErole_name[,...] |ADMINrole_name[,...] |USERrole_name[,...] |SYSIDuid
登录权限
LOGIN属性用于赋予角色拥有连接数据库权限,命令二选一
CREATEROLEnameLOGIN; CREATEUSERname;
CREATEUSER和CREATEROLE几乎相同,除了CREATEUSER默认带有登录权限,CREATEROLE没有。
超级用户
超级用户拥有数据库的所有权限,必须小心超级用户的权限赋予,命令如下
CREATEROLEnameSUPERUSER;
创建数据库权限
CREATEROLEnameCREATEDB;
创建角色权限
CREATEROLEnameCREATEROLE;
初始化复制
CREATEROLEnameREPLICATIONLOGIN;
密码
密码是用户登录数据库的客户端认证方式。密码创建后采用md5加密算法加密。
CREATEROLEnamePASSWORD'string';
更改权限
ALTERROLEnameSETenable_indexscanTOoff;
3、角色组
角色组类似于操作系统的组权限,可以非常方便的对组内成员的权限进行管理。
可以用过GRANT和REVOKE操作进行权限的赋予和回收。
GRANTgroup_roleTOrole1,...; REVOKEgroup_roleFROMrole1,...;
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。