标签:主键 http 登录 tab quota font 需要 als product
| 语句 | 解释 |
| Create user | Creates a user(usually performed by a DBA) |
| Grant | Gives other users privileges to access the objects |
| Create role | Creates a collection of privileges, usually performed by a DBA |
| Alter user | Changes a user‘s password |
| Revoke | Removes privileges on an object from users |
通过数据字典查询
| 数据字典视图 | 描述 |
| dba_users | 用户 |
| dba_ts_quotas | 每个用户空间使用配额 |
| dba_profiles | 查询profile文件 |
| dba_sys_privs | 查询用户权限 |
| dba_roles | 查看角色 |
| ROLE_SYS_PRIVS | 授予角色的系统权限 |
| ROLE_TAB_PRIVS | 授予角色的表权限 |
| USER_ROLE_PRIVS | 授予用户的角色 |
| USER_SYS_PRIVS | 授予用户的系统权限 |
| USER_TAB_PRIVS_MADE | 用户对象上授予的权限 |
| USER_TAB_PRIVS_RECD | 授予用户的对象权限 |
| USER_COL_PRIVS_MADE | 用户某列上授予的对象权限 |
| USER_COL_PRIVS_RECD | 授予用户某列上的对象权限 |
权限管理
权限分类
所有的权限应该由DBA进行控制,在SQL语句规范之中针对于权限的控制提供了两个核心的操作命令:
| 系统权限 | 进行数据库资源操作的权限,例如:创建数据表、索引等权限; 系统权限主要指的是资源操作的权限, 系统权限是在数据库中执行某种特定操作的权利,系统权限并不针对某个特定的对象,而是针对整个数据库范围。 系统权限针对的是全局用户。 例如:数据库管理员(DBA)是数据库系统中级别最高的用户,它拥有一切的系统权限以及各种资源的操作能力。 在Oracle中有100多种的系统权限,并且不同的数据库版本相应的权限数也会增加。 系统规定用户使用数据库的权限。(系统权限是对用户而言) |
| 对象权限 |
维护数据库中对象的能力,即:由一个用户操作另外一个用户的对象。 对象权限指的是数据库之中某一个对象所拥有的权限, 即:可以通过某一个用户的对象权限,让其他用户来操作本用户中的所有授权的对象。 在Oracle之中一共定义了八种对象权限,分别是:SELECT、INSERT、UPDATE、DELETE、EXECUTE、ALTER、INDEX、REFERENCES。 |
系统权限
系统权限分类:
| DBA | 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构 |
| RESOURCE | 拥有Resource权限的用户只可以创建对象,不可以创建数据库结构 |
| CONNECT | 拥有Connect权限的用户只可以登录oracle,不可以创建对象,不可以创建数据库结构 |
| 对于普通用户 | 授予connect, resource权限。 |
| 对于DBA管理用户 | 授予connect,resource, dba权限 |
常用的系统权限有:
| CREATE SESSION | 连接到数据库上 |
| CREATE SEQUENCE | 创建序列,序列是一系列数字,通常用来自动填充主键列 |
| CREATE SYNONYM | 创建同名对象 |
| CREATE TABLE | 创建表 |
| CREATE ANY TABLE | 在任何模式中创建表 |
| DROP TABLE | 删除表 |
| DROP ANY TABLE | 删除任何模式中的表 |
| CREATE PROCEDURE | 创建存储过程 |
| EXECUTE ANY PROCEDURE | 执行任何模式中的存储过程 |
| CREATE USER | 创建用户 |
| DROP USER | 删除用户 |
| CREATE VIEW | 创建视图 |
为用户授权
| GRANT 权限 , … TO [用户名 , … | 角色名 , …. | PUBLIC] [WITH ADMIN OPTION] ; |
| 权限: | 主要指的是各个系统权限 |
| TO: | 设置授予权限的用户、角色或者是使用PUBLIC将此权限设置为公共权限; |
| WITH ADMIN OPTION: | 将用户授予的权限继续授予其他用户,则得到的权限可以传递。 |
| 为c##wendy用户授予CREATE SESSION权限,这样用户就可以登录了. |
| GRANT CREATE SESSION TO c##wendy ; |
| 为c##wendy用户授权; 12C以前的oracle版本在授权后需要重新登录,只有登录时会取权限。 12C是动态取得权限. |
| GRANT CREATE TABLE , CREATE SEQUENCE , CREATE VIEW TO c##wendy WITH ADMIN OPTION ; |
| 利用c##wendy用户登录,而后将创建表、以及创建序列的权限授予c##gaga用户 |
| GRANT CREATE TABLE , CREATE SEQUENCE TO c##gaga ; |
撤消权限
| REVOKE 权限 , ... FROM 用户名 ; |
| 将c##wendy用户的CREATE VIEW、CREATE TABLE权限回收 |
| REVOKE CREATE TABLE , CREATE VIEW FROM c##wendy; |
| 通过c##wendy用户回收c##gaga用户的CREATE SEQUENCE权限 |
| REVOKE CREATE SEQUENCE FROM c##gaga ; |
说明:
1)如果使用WITH ADMIN OPTION为某个用户授予系统权限,那么对于被这个用户授予相同权限的所有用户来说,取消该用户的系统权限并不会级联取消这些用户的相同权限。
2)系统权限无级联,即A授予B权限,B授予C权限,如果A收回B的权限,C的权限不受影响;系统权限可以跨用户回收,即A可以直接收回C用户的权限。
对象权限
| 对象权限 | 表(Table) | 序列(Sequence) | 视图(View) | 子程序(Procedure) |
| 查询(SELECT) | √ | √ | √ |
|
| 增加(INSERT) | √ |
| √ |
|
| 更新(UPDATE) | √ |
| √ |
|
| 删除(DELETE) | √ |
| √ |
|
| 执行(EXECUTE) |
|
|
| √ |
| 修改(ALTER) | √ | √ | √ |
|
| 索引(INDEX) | √ |
| √ |
|
| 关联(REFERENCES) | √ |
|
|
|
授予对象权限
ON 对象
TO [用户名 | 角色名 | PUBLIC]
[WITH GRANT OPTION] ;
语法组成:
| 对象权限 | 指的是表所列出的权限标记,如果设置为ALL表示所有对象权限; |
| ON | 要授予权限的对象名称; |
| TO | 将此权限授予的用户名称或角色名称,如果设置为PUBLIC表示为公共权限; |
| WITH GRANT OPTION: | 允许授权用户继续授权其他用户。 |
| 为c##wendy用户授予c##scott用户dept表的查询以及增加权限 |
| GRANT SELECT , INSERT ON c##scott.dept TO c##wendy ; |
| 将c##scott.dept数据表更新部门编号(dname)的权限授予c##wendy用户 |
| GRANT UPDATE(dname) ON c##scott.dept TO c##wendy ; |
| 允许系统上的所有用户从wendy的t表中查询数据: |
| GRANT select ON wendy.t TO PUBLIC; |
| 将表的操作权限授予全体用户: |
| grant all on product to public//public 表示所有的用户 |
| 从数据字典中查询当前用户授权权限. |
| SELECT * FROM user_tab_privs_recd; |
回收对象权限
| REVOKE [权限 , .... | ALL] ON 对象 FROM [用户 , .... | 角色 | PUBLIC] ; |
REVOKE SELECT , INSERT ON c##scott.dept FROM c##wendy ;
REVOKE UPDATE ON c##scott.dept FROM c##wendy ;
如果取消某个用户的对象权限,那么对于这个用户使用WITH GRANT OPTION授予权限的用户来说,同样还会取消这些用户的相同权限,也就是说取消授权时级联的。
SQL Fundamentals || DCL(Data Control Language) || 系统权限&对象权限管理(GRANT&REVOKE)
标签:主键 http 登录 tab quota font 需要 als product
原文地址:http://www.cnblogs.com/thescentedpath/p/GRANTREVOKE.html