用户与模式的关系
用户
准确来说叫做账户,以任何方式访问数据库,并且提供正确的用户名以及密码,就称为用户
模式
模式或者方案就是用户拥有的数据库对象的集合(个人理解就是权限的集合)
关系
一个用户必定对应一个模式,无论模式是否具有权限
身份验证
从上得知数据库用户提供对应的账号和密码才能对数据库进行相对应的操作
conn username/密码
如果在用户忘记了密码,这里提供一种解决方案
- 打开cmd工具输入(只在本地才能操作),以dba的身份登陆,跳过身份验证操作
slqplus / as sysdba
- 修改对应的用户密码
alter user username identified by 新密码
- 验证登陆是否成功
conn username/新密码
创建用户
create user username identified by 密码
//设置默认表空间
default tablespace users
//设置临时表空间
temporary tablespace temp
//指定所占内存
quota 10m on tbsp_1
// 如果要禁用用户使用表空间,则设置为0
quota 10m on tbsp_1//设置使用不受限制
//这样创建的用户不具有任何权限,不能连接数据库
修改用户
修改用户的表空间
//类似请求类似句型
alter user username quota 20m on tbsp_1;
解锁被锁住的用户
alter user SH account unlock;
删除用户
drop user username casecade;
用户权限管理
权限
Oracle将权限分为系统权限和对象权限
系统权限
系统对数据库进行存取和使用的机制
对象权限
是指某一个用户对其他用户的表,视图,序列,存储过程,函数,包的操作权限
授权操作
GRANT命令
- 授予系统权限
grant 权限名|角色名
to username
public //保留字,代表oracle系统的所有用户
with admin option //表示具有管理员权限,可以将自己具有的权限赋予给别人
- 授予对象权限
grant privileges|ALL
on schma.object
to user|role
public
with admin option
with hierarchy option //在对象的子对象上授权个用户```
回收系统权限
REVOKE命令
- 回收系统权限
revoke 权限名|角色
from username|role
public //保留字
- 回收对象权限(与上同理)
- 补充
当用户A将权限赋予用户B,系统权限回收A的权限时,用户B的权限也将被撤销
查询用户与权限
数据字典表 | 说明 |
---|---|
dba_users | 数据库用户基本信息表 |
dba_sys_privs | 已授权用户或者角色的系统权限 |
dba_tab_privs | 数据库对象上的所有权限 |
user_sys_privs | 登陆用户可以查看自己的系统权限 |
role_sys_privs | 登陆用户查看自己的系统权限 |
all_tables | 用户自己可以查询的基本信息 |
user_tab_privs | 用户自己将那些基本权限授予哪些用户 |
all_tab_privs | 哪些用户给自己授权 |
角色管理
创建角色与授权
create role rolename identified by password;//创建
grant privs to rolename;//授权
- 补充
当创建一个具有密码的角色时,授权给某个用户可能角色上的权限并不能生效,这可能是因为没有没有输入密码的原因,下面输入密码
set role rolename identified by password;
查看角色包含的权限
select * from role_sys_privs where role = 'rolename';
修改角色密码
//废弃一个角色
alter role rolename not identified;
//修改角色密码
alter role designer identified by pasword;
删除角色
drop role rolename;