[TOC]
用户和角色用户管理
sys:系统内置的超级管理员 用于分配管理数据库账户、表空间,等其他对象。
scott:系统内置的普通管理员,示例账户。
1、创建用户
# 创建用户
create user 用户名 identified by 密码
[default tablespace tablespace_default] # 表示该用户在创建数据对象时使用的默认空间表
2、修改密码
超级管理员可以修改任何普通用户的密码,而不需要知道用户的旧密码。
# 修改密码
alter user 用户名 identified by 密码
3、删除用户
# 删除的用户中没有任何对象
drop user 用户名
# 删除的用户中有对象时
drop user 用户名 cascade
4、查看数据库中的所有用户
# 查看所有的用户
select * from dba_users;
# 查看所有用户名
# dba_开头的是查全库所有的,all_开头的是查当前用户可以看到的,user_开头的是查当前用户的
select username from user_users;
select username from dba_users;
上课时创建了一个 test 用户
5、赋予用户权限
用户被创建后,没有任何权限,包括登录。用户如果想登录至少有“create session”的权限。
# 须超级管理员给用户授权 #
grant 权限1,权限2 to 用户名;
# 建立连接的权限
grant create session to 用户名
# 创建表的权限
grant create table to 用户名;
# 赋予用户查询、插入某张表的权限(需要在表所在用户下使用以下语句赋予权限)
grant select on 表名 to 用户名;
grant insert on 表名 to 用户名;
grant read,write on directory dpdata1 to scott;
# 给用户无限表空间权限
grant unlinmited tablespace to 用户名;
6、回收权限
revoke 权限1,权限2 from 用户名;
7、用户状态
用户状态 | 解释 |
---|---|
OPEN | 正常状态,为用户帐号初始创建后状态 |
EXPIRED | 密码过期状态,用户下次登录的时候需要修改密码 |
LOCKED | 锁定状态,不能执行任何Oracle相关操作 |
角色的管理
1、创建角色
如果系统预定义的权限不符合用户的需要,那么数据库管理员可以创建更多的角色。
create role 角色名
2、为角色授权
# 为角色授权
grant 权限列表 to 角色列表
3、通过角色为用户授权
# 通过角色为用户授权
crant 角色列表 to 用户列表
4、回收权限
# 通过角色从用户回收权限
revoke 角色 from 用户;
# 从角色回收权限
revoke 权限 from 角色;
5、删除角色
drop role 角色;
6、预定义角色
Oracle数据库预先定义好的角色,通常包括:
角色 | 概述 |
---|---|
dba | 该角色中的权限通常赋给数据库管理员 |
connect | 是授予最终用户的典型权利,最基本的权利,能够连接到ORACLE数据库中,并在对其他用户的表有访问权限时,做SELECT、UPDATE、INSERTT等操作。 |
resource | 是授予开发人员的,能在自己的方案中创建表、序列、视图等。 |
7、查看角色所包含的权限
# 查看当前用户下角色中包含的系统权限
select * from role_sys_privs where role='角色名';
# 查看数据库下角色中包含的系统权限
select * from dba_sys_privs where grantee='角色名'
对用户和角色理解
狼人杀
你自己 = 用户
身份牌 = 角色