数据库对象管理之非模式对象
数据库对象:表,索引,视图,图表,缺省值,规则,触发器,语法等。所有在数据库中的一切,都可以被称为数据库对象。
按照一般划分,数据库对象分为模式对象和非模式对象
模式对象:特定数据库对象的集合。如:表、索引等。
非模式对象:其他数据库对象。如用户、权限、表空间等
一非模式对象及相关
1用户与角色
(1)用户(user):用户用来访问和管理数据库,具有一系列的权限,如登陆、建表、建索引等。
(2)角色(role):和用户相同,唯一的区别是默认无法登陆,通常作为权限角色组。
create role testrole1;//角色,不可登陆 create user testuser1; //用户,可登陆 select * from pg_roles; select * from pg_user; select * from pg_authid;//表中rolcanlogin决定是否可以登录 修改用户testuser1不可登陆 update pg_authid set rolcanlogin='f' where rolname='testuser1'; 修改用户testuser1可登陆 ALTER ROLE testuser1 WITH LOGIN; |
(3)角色组:便于权限授予控制,可以把各种权限统一授予给某个角色组,再把角色组授予给特定用户。
通过\h create user和\h create role来对比
查看数据库用户: \du 或者 select * from pg_user; select * from pg_shadow; // 需要dba权限,显示密码 创建用户:\h create user (也可通过外部命令创建) create user test001 with password '123456';// 密码加密 create user test002 with unencrypted password '123456';// 密码不加密 修改用户:\h alter user Alter user test001 with password '654321';//修改密码 删除用户:drop user test001; --删除用户之前需要删除所属他的表和schema |
2权限管理
少部分权限:不会级联回收。只能由superuser去回收。
部分权限:用户对其他用户的数据对象操作的权限。会级联回收。
级联授权:A用户授权B用户可以使用with grant option参数指定级联权限。
级联回收:A用户给了B用户某个权限,而B用户又将该权限赋予C用户。当A收回给B用户权限的时候,会