linuxsir首页 LinuxSir.Org | Linux、BSD、Solaris、Unix | 开源传万世,因有我参与欢迎您!
网站首页 | 设为首页 | 加入收藏
您所在的位置:主页 > Linux数据库 >

PostgreSQL数据库对象管理之非模式对象

时间:2016-11-19  来源:未知  作者:admin

数据库对象管理之非模式对象

数据库对象:表,索引,视图,图表,缺省值,规则,触发器,语法等。所有在数据库中的一切,都可以被称为数据库对象。

按照一般划分,数据库对象分为模式对象和非模式对象

模式对象:特定数据库对象的集合。如:表、索引等。

非模式对象:其他数据库对象。如用户、权限、表空间等

一非模式对象及相关

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用户权限的时候,会要求cascade级联回收。

2.1创建用户的时候授权

(修改方式alterrole 名称 with  权限)

superuser/nosuperuser      超级用户权限

createdb/nocreatedb        创建数据库的权限

createrole/nocreaterole    创建角色的权限

createuser/nocreateuser    创建用户的权限

inherit/noinherit          可继承的权限   

login/nologin              可登陆权限

replication/noreplication  流复制专用用户

connection limit           连接限制(默认-1,无限制)

2.2 grant赋权(revoke 收回)

友情链接