Oracle DB 关于CONNECT、RESOURCE 和DBA 角色权限
Oracle的默认数据库用户
sys
、system
、scott
。
sys
:
数据库中所有数据字典表
和视图
都存储在SYS
模式中。
SYS
用户主要用来维护系统信息
和管理实例
。
SYS
用户作用如同Linux
中的root
用户,SYS
用户大于Oracle
数据库中所有用户权限
。
数据字典
存放的是整个数据库最基本最基本的信息,表
的信息,列
的信息 …。
动态视图
是Oracle
数据库时时刻刻运行的情况都在动态视图
中有记载。
动态视图
是由sys
用户维护的。
SYSTEM
:
SYSTEM
是默认的系统管理员
,该用户拥有Oracle
管理工具使用的内部表
和视图
。
通常通过SYSTEM
用户管理数据库用户
、权限
和存储
等。
SYSTEM
做普通的维护工作,比如创建表
以后查看执行计划
。
SCOTT
:
示范账户,就一个普通用户
。
创建新用户
create user test1 identified by test1;
权限
权限有两种类型
:
-
系统权限
允许用户执行某些数据库
操作,如创建表
就是一个系统权限
。 -
对象权限
允许用户对数据库
对象(如表
、视图
、序列
等)执行特定操作
。
系统权限
#不用用户登录
sqlplus/nolog
#没有create session权限
SQL> conn test1/test1@orcl
ERROR:
ORA-01045: user TEST1 lacks CREATE SESSION privilege; logon denied
conn system/password
grant create session to test1;
conn test1/test1
#权限不足 没有创建表的权限
SQL> create table student(sno number);
create table student(sno number)
*
ERROR at line 1:
ORA-01031: insufficient privileges
exit
sqlplus system/password
grant create table to test1;
#无限制使用表空间权限
grant unlimited tablespace to test1;
conn test1/test1
SQL> create table student(sno number);
Table created.
给其他用户创建表
sqlplus system/password
#可以创建任何一张表(any)
grant create any table to test1;
conn test1/test1
create table scott.a(id int);
conn scott/scott
#查看所有表
select * from tab;
查看该用户已被授予权限
select * from dba_sys_privs d where d.grantee =