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设为临时表空间。
- Sysdba和sysoper两个系统权限区别
sysdba和sysoper属于system privilege,也称为administrative privilege,拥有例如数据库开启关闭之类一些系统管理级别的权限。sysdba和sysoper具体的权限如下:
【SYSOPER】权限,即数据库操作员权限,权限包括:
- 打开数据库服务器
- 关闭数据库服务器
- 备份数据库
- 恢复数据库
- 日志归档
- 会话限制
【SYSDBA】权限,即数据库管理员权限,权限包括:
- 打开数据库服务器
- 关闭数据库服务器
- 备份数据库 恢复数据库
- 日志归档
- 会话限制
- 管理功能
- 创建数据库
【sysdba】拥有最高的系统权限,登陆后是sys。
【sysoper】主要用来启动、关闭数据库,sysoper 登陆后用户是public。
创建自定义用户
步骤:
- 选择用户名和密码
- 识别用户需用于存储对象的表空间
- 决定每个表空间的限额
- 分配缺省表空间和临时表空间
- 创建用户
- 向用户授予权限和角色
语法:
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; --第一次登录需要修改密码
修改YDW用户的密码为pwd123456
删除用户YDW
查询oracle的所有用户
解锁用户
1)先查看hr用户的状态是锁定的
六、oracle数据库权限管理
- 权限指的是执行特定命令或访问数据库对象的权利
- 权限有两种类型,系统权限和对象权限
- 系统权限允许用户执行某些数据库操作,如创建表就是一个系统权限
- 对象权限允许用户对数据库对象(如表、视图、序列等)执行特定操作
- 角色是一组相关权限的组合,可以将权限授予角色,再把角色授予用户,以简化权限管理
- 使用系统权限
系统权限是指在数据库中执行某种系统级别的操作,或者针对某一类对象执行某种操作的权利,例如:在数据库中创建表空间的权利,或者创建表的权利,都属于系统权限,具体如下图:
常用的系统权限如下:
CREATE SESSION:连接到数据库
CREATE TABLE:创建表
CREATE VIEW:创建视图
CREATE SEQUENCE:创建序列
对象权限
对象权限是指针对某个特定模式对象执行操作的权利,只能针对模式对象来设置管理对象权限,包括:表、视图、序列、存储过程等。
3、授权
Oracle数据库用户有两种途径获得权限
- 直接向用户授予权限
- 将权限授予给角色,再将角色授予给一个或者多个用户
使用角色能更高效,方便地对权限进行管理,所以数据库管理员通常使用角色向用户授予权限,而不是直接向用户授予权限。
Oracle中常用系统预定义角色有以下种类:
- CONNECT:拥有连接数据库权限
- RESOURCE:拥有创建表、触发器、过程等权限
- 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
使用YDW用户登录
提示第一次登录需要更改密码
使用新密码重新登录,提示没有任何权限。
为用户授予session(连接到数据库)权限
重新登录oracle
测试YDW能否创建表,提示权限不足
授予用户创建表的权限
再次使用YDW登录,测试能够创建表
创建成功了,测试插入数据,并查询
查看用户拥有的权限
撤销用户的权限
测试用户YDW能够查询scott.emp
提示没有权限
授予用户查询scott.emp的权限
测试查询scott.emp
查询成功了