Oracle权限(一)

简介: 001 概述     默认方式下,任何非授权用户都不能在Oracle数据库中执行任何操作。如果不授予权限,用户甚至不能成功连接。纵然完成了连接,如果不为其授予更多权限,用户仍什么都不能做。
001 概述
    默认方式下,任何非授权用户都不能在Oracle数据库中执行任何操作。如果不授予权限,用户甚至不能成功连接。纵然完成了连接,如果不为其授予更多权限,用户仍什么都不能做。
    grant命令给用户账户授权
    revoke命令撤销权限
    默认方式下,只有DBA有权授予任何权限。
    权限分为两组:系统权限和对象权限。系统权限通常允许用户执行影响数据字典的操作,对象权限允许用户执行影响数据的操作。

002 系统权限
    系统权限约有200种。大多数都应用于影响数据字典的操作,如创建表或用户。其它的影响数据库和实例,如创建表空间、调整实例参数值,或建立会话。一些较常用的权限如下:
    创建会话:(create session):允许用户进行连接。否则,用户甚至无法登录到数据库。
    受限制的会话(restricted session):如果使用 startup restrict启动数据库,或使用alter system enable restricted session进行调整,则仅拥有此权限的用户可以连接。
    更改数据库(alter  database):允许访问多个 修改物理结构所需的命令。
    更改系统(alter  system):允许控制 实例参数和内存结构
    创建表空间(create tablespace):alter tablespace和drop tablespace权限允许用户管理表空间。
    创建表(create table)允许被授权人在自己的模式中创建表;包括更改和删除表,在其上运行select和DML命令,以及在其上创建、更改或删除索引。
    授予任何对象权限(grant any object privilege):允许被授予人将其本身不拥有的对象的对象权限授予他人,但不能授予自己。
    创建任何表(create any table):被授权人可以创建属于其它用户的表。
    删除任何表(drop any table):被授权人可以删除属于其他用户的表。
    插入任何表、更新任何表、删除任何表(insert any table,update any table,delete any table):被授权人可以对所有其它用户拥有的表执行这些DML命令。
    选择任何表(select any table):被授权人可以对数据库中的任何表执行select操作。

    如果从用户撤销权限,那么之前用户使用相应权限执行的任何操作仍然 完好无缺。另外,如果用户被授予带有 admin option的权限,那么即使对其作了撤销,他授予了权限的任何用户将 保留权限。不保存系统权限授予者的记录,故不存在撤销级联。
    note:系统权限的撤销不会级联(这与撤销对象权限不同)。

003 实验验证
SYS@ORCL> create user hhu identified by hhu;

User created.

SYS@ORCL> grant create session to hhu;

Grant succeeded.

SYS@ORCL> create user hhu0 identified by hhu;

User created.

SYS@ORCL> conn hhu0/hhu
ERROR:
ORA-01045: user HHU0 lacks CREATE SESSION privilege; logon denied


Warning: You are no longer connected to ORACLE.
@> conn hhu/hhu
Connected.
HHU@ORCL> grant create session to hhu0;
grant create session to hhu0
*
ERROR at line 1:
ORA-01031: insufficient privileges


HHU@ORCL> conn / as sysdba
Connected.
SYS@ORCL> grant create session to hhu admin option;
grant create session to hhu admin option
                            *
ERROR at line 1:
ORA-00933: SQL command not properly ended


SYS@ORCL> grant create session to hhu with admin option;

Grant succeeded.

SYS@ORCL> conn hhu/hhu
Connected.
HHU@ORCL> grant create session to hhu0 ;

Grant succeeded.

HHU@ORCL> conn hhu0/hhu
Connected.
HHU0@ORCL> conn / as sysdba
Connected.
SYS@ORCL> revoke create session from hhu;

Revoke succeeded.

SYS@ORCL> conn hhu0/hhu
Connected.
HHU0@ORCL> conn hhu/hhu
ERROR:
ORA-01045: user HHU lacks CREATE SESSION privilege; logon denied


Warning: You are no longer connected to ORACLE.
@> conn / as sysdba
Connected.
SYS@ORCL> grant restricted session to hhu ;

Grant succeeded.

SYS@ORCL> grant alter database to hhu;

Grant succeeded.

SYS@ORCL> grant create session to hhu;

Grant succeeded.

SYS@ORCL> grant create tablespace to hhu;

Grant succeeded.

SYS@ORCL> grant create table to hhu;

Grant succeeded.

SYS@ORCL> grant grant any object privilege to hhu;

Grant succeeded.

SYS@ORCL> grant create any table to hhu;

Grant succeeded.

SYS@ORCL> grant drop any table to hhu;

Grant succeeded.

SYS@ORCL> grant insert any table,update any table,delete any table to hhu;

Grant succeeded.

SYS@ORCL> grant select any table to hhu;

Grant succeeded.

相关文章
|
4月前
|
Oracle 安全 关系型数据库
|
6月前
|
SQL Oracle 关系型数据库
【ORACLE】 事务 | 锁 | 约束 | 权限、角色与用户管理
【ORACLE】 事务 | 锁 | 约束 | 权限、角色与用户管理
64 1
|
SQL Oracle 关系型数据库
9-7 Oracle如何管理权限和角色
9-7 Oracle如何管理权限和角色
293 0
|
存储 SQL Oracle
Oracle-PROCEDURE权限解读
Oracle-PROCEDURE权限解读
269 0
|
Oracle 关系型数据库 Linux
如果oracle用户下的$ORACLE_HOME bin oracle文件的属主或权限出了问题,那么该如何修复呢?
如果oracle用户下的$ORACLE_HOME bin oracle文件的属主或权限出了问题,那么该如何修复呢?
387 1
|
Oracle 关系型数据库 数据库管理
ORACLE分配DBA权限
ORACLE分配DBA权限