postgresql用户管理
postgresql用户管理: 默认用户: postgres安装完成后,会自动在操作系统和postgres数据库中分别创建一个名为postgres的用户以及一个同样名为postgres的数据库。 1、组角色: 一个组角色可以看作一组数据库用户。组角色可以拥有数据库对象(比如表),并可以把这些对象上的权限赋予其他角色,以控制谁拥有访问哪些对象的权限。 --创建角色: create role role_emp; --查看系统中的角色,如: select rolname from pg_roles; --修改组角色名称的语法: alter role 组角色名称 rename to 新的组角色名称; --删除组角色 drop role 组角色的名称; 2、角色的各种权限 ①:登录权限:login --创建具有登录权限的组角色,如: create role zhang login; ②:superuser(超级用户) superuser超级用户拥有对数据库操作的最高权限,可以完成对数据库的所有权限检查。 --创建数据库超级用户,如: create role zhang superuser; 注意:只有超级用户才能有权限创建超级用户。 ③:createdb创建数据库 --创建具有创建数据库权限的组角色,如 create role zhang createdb; ④:createrole创建角色 --创建具有创建角色权限的角色,如: create role zhang createrole; ⑤:口令 在客户认证方法要求与数据库建立连接时,需要口令权限。常见的认证方法包括:password,md5,crypt。 --创建具有口令权限的角色,如: create role zhang password '123456'; 3、账户管理 方式1:在系统命令行中使用createuser命令中创建 createuser username ;如[pguser@localhost ~]$ createuser zhangfeng 方式2:在PostgresSQL命令行中使用CREATE ROLE指令创建 CREATE ROLE rolename; 方式3:在PostgresSQL命令行中使用CREATE USER指令创建 CREATE USER username; 注意:CREATE USER和CREATE ROLE的区别在于,CREATE USER指令创建的用户默认是有登录权限的,而CREATE ROLE没有。 例子:创建用户zhangfeng 密码123456,并且有创建数据库权限和创建角色权限,如: create user zhangfeng password '123456' createdb createrole; --删除用户 drop user zhangfeng; --修改用户密码 alter user zhangfeng password '123456'; 3、组角色和用户权限管理 --对组角色授权: alter role 角色名 权限1,权限2,,,; 如:给ro_emp角色添加创建数据表和创建角色的权限: alter role ro_emp createdb createrole; --对用户授权 alter user 用户名 权限1,权限2,,,; 如:给用户添加创建数据表和创建角色权限, alter user zhangfeng createdb createrole; --收回组角色权限 将role_emp角色的创建数据表和创建角色权限收回,如: alter role role_emp nocreatedb nocreaterole; --收回用户权限 alter user zhangfeng nocreatedb nocreaterole; 4、数据库权限管理 --修改数据库的拥有者 alter database 数据库名称 owner to 拥有者名字; 如: alter database testdb owner to zhangfeng; --增加用户的数据表权限 grant 权限 on 数据表 to 用户名; 如: grant update on emp to zhangfeng; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |