资源描述:
《Postgresql角色创建.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、角色与用户的区别角色就相当于岗位:角色可以是经理,助理。用户就是具体的人:比如陈XX经理,朱XX助理,王XX助理。在PostgreSQL里没有区分用户和角色的概念,"CREATEUSER"为"CREATEROLE"的别名,这两个命令几乎是完全相同的,唯一的区别是"CREATEUSER"命令创建的用户默认带有LOGIN属性,而"CREATEROLE"命令创建的用户默认不带LOGIN属性(CREATEUSERisequivalenttoCREATEROLEexceptthatCREATEUSERassumesLO
2、GINbydefault,whileCREATEROLEdoesnot)。1.1创建角色与用户CREATEROLE语法CREATEROLEname[[WITH]option[...]]whereoptioncanbe:SUPERUSER
3、NOSUPERUSER
4、CREATEDB
5、NOCREATEDB
6、CREATEROLE
7、NOCREATEROLE
8、CREATEUSER
9、NOCREATEUSER
10、INHERIT
11、NOINHERIT
12、LOGIN
13、NOLOGIN
14、REPLICATION
15、NOREPLICATION
16、CO
17、NNECTIONLIMITconnlimit
18、[ENCRYPTED
19、UNENCRYPTED]PASSWORD'password'
20、VALIDUNTIL'timestamp'
21、INROLErole_name[,...]
22、INGROUProle_name[,...]
23、ROLErole_name[,...]
24、ADMINrole_name[,...]
25、USERrole_name[,...]
26、SYSIDuid创建david角色和sandy用户postgres=#CREATEROLEdavid; //默认不带LOGIN属性
27、CREATEROLEpostgres=#CREATEUSERsandy; //默认具有LOGIN属性CREATEROLEpostgres=#duListofrolesRolename
28、Attributes
29、Memberof-----------+------------------------------------------------+-----------david
30、Cannotlogin
31、{}postgres
32、Superuser,Createrole,CreateDB,Replication
33、{}s
34、andy
35、
36、{}postgres=#postgres=#SELECTrolnamefrompg_roles;rolname----------postgresdavidsandy(3rows)postgres=#SELECTusenamefrompg_user;//角色david创建时没有分配login权限,所以没有创建用户usename----------postgressandy(2rows)postgres=#1.2验证LOGIN属性postgres@CS-DEV:~>psql-Udavidpsql:FAT
37、AL:role"david"isnotpermittedtologinpostgres@CS-DEV:~>psql-Usandypsql:FATAL:database"sandy"doesnotexistpostgres@CS-DEV:~>psql-Usandy-dpostgrespsql(9.1.0)Type"help"forhelp.postgres=>dtNorelationsfound.postgres=>用户sandy可以登录,角色david不可以登录。1.3修改david的权限,增加LOGIN权限p
38、ostgres=#ALTERROLEdavidLOGIN;ALTERROLEpostgres=#duListofrolesRolename
39、Attributes
40、Memberof-----------+------------------------------------------------+-----------david
41、
42、{}postgres
43、Superuser,Createrole,CreateDB,Replication
44、{}sandy
45、
46、{}postgres=#SELECTrolnamefro
47、mpg_roles;rolname----------postgressandydavid(3rows)postgres=#SELECTusenamefrompg_user; //给david角色分配login权限,系统将自动创建同名用户davidusename----------postgressandydavid(3rows)postgres=#1.4再次验证LOG