oracle数据库用户管理

oracle用户管理:

当创建一个新数据库时,oracle将常见一些默认的数据库用户,如SYS,SYSTEM和SCOTT等用户。SYS和SYSTEM用户都是oracle管理用户,而SCOTT用户是oracle数据库的一个示范用户,SCOTT数据库里面包含一些测试展示用的示例表(用于学习交流)

1、默认数据库用户

1)SYS

SYS用户是oracle中的一个超级用户,数据库中所有数据字典和视图都存在SYS模式中,数据字典存储了用来管理数据库对象的所有信息,是oracle数据库中非常重要的系统信息。SYS用户主要用来维护系统信息和管理实例。SYS用户只能以SYSOPER或SYSDBA角色登录系统。

 

2)SYSTEM

SYSTEM用户是oracle中默认的数据库管理员,它拥有DBA权限。该用户模式中存储了oracle管理工具使用的内部表和视图。通常通过SYSTEM用户管理数据库的用户、权限和存储等。

不建议在SYSTEM模式中创建用户表。SYSTEM不能以SYSOPER和SYSDBA角色登录系统,只能以默认方式登录。

 

3)SCOTT

SCOTT用户是oracle数据库的一个示范用户,一般在数据库安装时创建。SCOTT用户模式包含4个示例表,其中一个是EMP表,使用USERS表空间存储模式对象。

通常出于安全考虑,对于不同用途的表需要不同的访问权限,此时,就需要创建不同的用户,oracle中的create user命令用于创建用户,每个用户都有一个默认表空间和一个临时表空间。如果没有指定,oracle就将USERS设为默认表空间,将TEMP设为临时表空间。

 

  1. Sysdba和sysoper两个系统权限区别  

sysdba和sysoper属于system privilege,也称为administrative privilege,拥有例如数据库开启关闭之类一些系统管理级别的权限。sysdba和sysoper具体的权限如下:  

【SYSOPER】权限,即数据库操作员权限,权限包括:

  1. 打开数据库服务器
  2. 关闭数据库服务器
  3. 备份数据库
  4. 恢复数据库
  5. 日志归档
  6. 会话限制

【SYSDBA】权限,即数据库管理员权限,权限包括:

  1. 打开数据库服务器
  2. 关闭数据库服务器
  3. 备份数据库 恢复数据库
  4. 日志归档
  5. 会话限制
  6. 管理功能
  7. 创建数据库  

 

【sysdba】拥有最高的系统权限,登陆后是sys。

【sysoper】主要用来启动、关闭数据库,sysoper 登陆后用户是public。

创建自定义用户

步骤:

  1. 选择用户名和密码
  2. 识别用户需用于存储对象的表空间
  3. 决定每个表空间的限额
  4. 分配缺省表空间和临时表空间
  5. 创建用户
  6. 向用户授予权限和角色

语法:

CREATE USER user

       IDENTIFIED BY password

       [DEFAULT  TABLESPACE tablespace]

       [TEMPORARY  TABLESPACE tablespace]

       [QUOTA {integer [K|M] | UNLIMITED}ON tablespace

       [QUOTA {integer [K|M] | UNLIMITED}ON tablespace ] ...]

       [PASSWORD EXPIRE ]

 

案例1:创建用户YDW

CREATE USER YDW                     --用户名为YDW

  IDENTIFIED BY pwd123                --密码为martinpwd

  DEFAULT TABLESPACE tbs_work         --默认表空间为tbs_work

  TEMPORARY TABLESPACE temp         --临时表空间为temp

  QUOTA UNLIMITED ON tbs_work        --对tbs_work表空间的使用没有限制

  PASSWORD EXPIRE;                   --第一次登录需要修改密码

oracle数据库用户管理

修改YDW用户的密码为pwd123456

oracle数据库用户管理

删除用户YDW

oracle数据库用户管理

查询oracle的所有用户

oracle数据库用户管理

解锁用户

1)先查看hr用户的状态是锁定的

oracle数据库用户管理

oracle数据库用户管理

六、oracle数据库权限管理

  1. 权限指的是执行特定命令或访问数据库对象的权利
  2. 权限有两种类型,系统权限和对象权限
  3. 系统权限允许用户执行某些数据库操作,如创建表就是一个系统权限
  4. 对象权限允许用户对数据库对象(如表、视图、序列等)执行特定操作
  5. 角色是一组相关权限的组合,可以将权限授予角色,再把角色授予用户,以简化权限管理
  1. 使用系统权限

系统权限是指在数据库中执行某种系统级别的操作,或者针对某一类对象执行某种操作的权利,例如:在数据库中创建表空间的权利,或者创建表的权利,都属于系统权限,具体如下图:

oracle数据库用户管理

常用的系统权限如下:

CREATE  SESSION:连接到数据库

CREATE TABLE:创建表

CREATE VIEW:创建视图

CREATE SEQUENCE:创建序列

 

对象权限

对象权限是指针对某个特定模式对象执行操作的权利,只能针对模式对象来设置管理对象权限,包括:表、视图、序列、存储过程等。

oracle数据库用户管理

3、授权

Oracle数据库用户有两种途径获得权限

  1. 直接向用户授予权限
  2. 将权限授予给角色,再将角色授予给一个或者多个用户

使用角色能更高效,方便地对权限进行管理,所以数据库管理员通常使用角色向用户授予权限,而不是直接向用户授予权限。

Oracle中常用系统预定义角色有以下种类:

  1. CONNECT:拥有连接数据库权限
  2. RESOURCE:拥有创建表、触发器、过程等权限
  3. DBA:数据库管理员,拥有管理数据库最高权限

 

新用户必须授予一定的权限才能进行相关数据库操作,授权通过grant语句,取消授权通过revoke语句

 

授权的语法:

1)GRANT CONNECT  TO  MARTIN;

授予授予CONNET角色给MARTIN

 

GRANT CONNECT,RESOURCE TO MARTIN;

同时授予CONNET,RESOURCE这2个角色给MARTIN

 

GRANT SELECT ON SCOTT.emp TO MARTIN;

允许用户MARTIN查询 SCOTT.emp表的记录

 

4)GRANT UPDATE ON SCOTT.emp TO MARTIN;

允许用户MARTIN更新 SCOTT.emp表中的记录

 

5)GRANT ALL ON SCOTT.emp TO MARTIN;

允许用户MARTIN插入、删除、更新和查询SCOTT.emp表中的记录

4、撤销权限的语法:

使用REVOKE命令撤销用户分配的权限或角色

 

1)REVOKE CONNECT,RESOURCE FROM MARTIN;

撤销CONNET,RESOURCE这2个角色

 

2)REVOKE SELECT FROM SCOTT.emp TO MARTIN;

撤销MARTIN查询 SCOTT.emp表的记录的权限

案例1:为用户设置权限

首先建立用户YDW

oracle数据库用户管理

 

使用YDW用户登录

oracle数据库用户管理

提示第一次登录需要更改密码

使用新密码重新登录,提示没有任何权限。

oracle数据库用户管理

为用户授予session(连接到数据库)权限

oracle数据库用户管理

重新登录oracle

oracle数据库用户管理

测试YDW能否创建表,提示权限不足

oracle数据库用户管理

授予用户创建表的权限

oracle数据库用户管理

再次使用YDW登录,测试能够创建表

oracle数据库用户管理

创建成功了,测试插入数据,并查询

oracle数据库用户管理

查看用户拥有的权限

oracle数据库用户管理

撤销用户的权限

oracle数据库用户管理

测试用户YDW能够查询scott.emp

oracle数据库用户管理

提示没有权限

授予用户查询scott.emp的权限

oracle数据库用户管理

测试查询scott.emp

oracle数据库用户管理

查询成功了