数据字典
常用的三类视图
user_* [] :存储当前用户拥有的对象的信息。
all_* []:存储当前用户能够访问的对象的信息。
dba_*[]:存储了数据库中所有对象的信息。
动态性能视图/动态数据字典
名称:都是以V$开头。
数据库安全管理
数据库的安全性
两方面:
对用户登录进行身份认证
对用户操作进行权限控制
一个用户对数据库进行操作,满足条件:
1.登录Oracle服务器是必须通过身份验证
2.必须是该数据库的用户或者某一数据库角色成员
3.必须有执行改操作的权限。
用户管理
也称账户,是orcale使用者的身份证明
用户需要正确的名和密码才能连接到数据库
用户权限不同,允许访问对象和执行的操作不一样
方案(模式schema):一个特定用户下的对象集合,创建一个用户就会创建一个方案,一个用户只能关联一个方案,用户名就是方案名。
Oracle的初始用户
管理员:sys和system
–sys可以创建、启动、关闭和修改数据库
–system不能创建和启动、关闭数据库
普通用户:scott、hr等
除管理员外,其余用户在创建后处于锁定状态
软件项目一般不建议使用这些初始用户
创建用户
create user xiaoming
identified by m123
default tablespace users 默认的表空间是哪个
temporary tablespace temp 临时表空间(数据时临时的)
quota 15m on users 分配给用户的空间大小,on后加表空间名字
password expire; 密码创建过期,登录时修改密码
例: system
xxgcx2017RJ
-
create tablespace myspace
datafile ‘d:\wb01.dbf’ size 10m;//创建表空间 -
create user xiaoming identified by xm123 //创建用户
default tablespace myspace;
查看用户信息
dba_users
user_objects
desc dba_users;
desc user_objects;
select * from dba_users
select * from user_objects
修改用户
修改密码
– alter user 用户名 identified by newpwd
–alter user username password expire
例:alter user xiaoming identified by m123
password 加用户名
用户锁定与解锁
—alter user username account lock
—alter user username account unlock
例:alter user hr account unlock;
分配表空间配额
—alter user username quota size on tablespace
删除用户
drop user username
1)如果用户方案中包括任何对象,在删除用户时,必须加上cascade短语。
2)如果用户当前正与Oracle服务器连接 ,则不能删除。
3)只有管理员才能删除用户。
权限管理*******
概念:执行特定类型的SQL语句或访问一个用户的对象的权利。
Oracle数据库使用权限来控制用户对数据的访问和用户所能执行的操作
分类:系统权限和对象权限
系统权限
数据库级别执行某些操作的权限
–create session
–create tablespace
–create table
–create view
对象权限
用户对数据库对象的访问权限
指对数据库中的特定对象(表,视图、函数)的访问控制权限,以及用户可以在这些数据库对象上执行哪些操作。
数据库用户拥有对自己的对象的所有对象权限,所以对象权限管理实际上是对象所有者对其它用户操作该对象的权限。
常用权限:增删改查
权限管理
授权
–grant 系统权限 to user
– grant 对象权限 on 数据对象 to user
grant create session to xiaoming //授予创建会话
grant select on emp to xiaoming
例:
conn system/mima
create user xiaoming identified by m123
default tablespace myspace;
conn xiaoming/m123
conn system/mima
grant create session to xiaoming;
conn xiaoming/m123
create table aa (aid int);
conn system/xxgcx2017RJ
grant create table to xioaming
conn xiaoming/m123
create table aa (aid int);
insert into aa values<101>;
conn system/*****
alter user xiaoming quota 10m on myspace;
conn xioaming/m123
create table aa<aid int>;
insert into aa values<101>;
收回权限
撤销系统权限
–revoke 权限 from user
例:revoke create table from xiaoming;//收回权限
–撤销系统权限时没有级联效果。
撤销对象权限
—revoke object_privilege [all] on object from user
–级联问题:如果对象是用with grantoption授予的,则撤销对象权限也将导致级联撤销
查看权限
通过查询以下视图来获取有关权限的信息:
dba_sys_privs:列出授予用户和角色的系统权限
session_privs:列出用户当前可用的权限
dba_tab_privs:列出对于数据库中所有对象的所有权限
dba_col_privs:描述数据库中的所有对象的授权
权限的传递
with admin option
with grant option
允许被授予者进一步为其他用户授予权限。
例: conn system/
grant create table to xiaoming with admin option;
conn system/
create user xiaohong identified by h123
default tablespace myspace
quota 10m on myspace;
grant create session to xiaohong;
conn xiaoming/
grant create table to xiaohong;
收回权限
撤销系统权限
–revoke 权限 from user
– 撤销系统权限时,没有级联效果
撤销对象权限
–revoke obbject_privilege [all] on object from user
—级联问题:如果对象是用with grantoption授予的,则撤销对象权限也将导致级联撤销
revoke create table from xiaoming;
SYSTEM 密码忘记时:
conn sys/as sysdba //可以重设密码