数据库用户和方案
l
方案就是属于某一用户的所有对象的集合
.
l
用户名和方案名往往是通用的
.
l
一个用户只能关联一个方案
.
l
创建用户时系统会自动创建一个同名方案
预定义帐户: SYS 和 SYSTEM
l
SYS
帐户
(
数据库拥有者
):
•
拥有
DBA
权限
•
拥有
ADMIN OPTION
的所有权限
•
拥有
startup, shutdown,
以及若干维护命令
•
拥有数据字典
l
SYSTEM
帐户拥有
DBA
权限
.
l
这些帐户并非用于常规操作
验证用户
密码验证方式(用户名/密码)
外部验证方式(主机认证)默认是主机认证 sqlplus / as sysdba 这个验证失败了 才用密码
全局验证方式(其他方式:生物认证方式、token方式
管理员验证
l
操作系统安全
:
•
DBA
必须拥有创建和删除文件的操作系统权限
•
普通数据库用户不应具有拥有创建和删除文件的操作系统权限
•
l
管理员安全
:
•
SYSBA
和
SYSOPER
通过密码文件或操作系统实现连接审定
.
•
密码文件使用名称鉴别
DBA
用户
.
•
OS
验证并不记录特定用户
.
•
对于
SYSDBA
和
SYSOPER
来说
OS
验证优先于密码文件认证
.
锁定与解锁
管理员登录
1. sqlplus sys/你的密码 as sysdba
2. sqlplus / as sysdba
SQL>
解锁
SQL>alter user scott account unlock;
改密码>
SQL>alter user scott identified by 新密码;
权限
l
用户权限有两种
:
•
System:
允许用户执行对于数据库的特定行为,例如:创建表、创建用户等
•
Object:
允许用户访问和操作一个特定的对象,例如:对其他方案下的表的查询
SQL> host cls
SQL> conn / as sysdba
已连接。
SQL> show user
USER 为 "SYS"
SQL> --创建名叫 itcast0909 密码是password 的用户
SQL> create user itcast0909 identified by password;
用户已创建。
SQL> --create session 系统权限
SQL> grant create session to itcast0909;
授权成功。
SQL> --create table
SQL> grant create table to itcast0909;
授权成功。
SQL> --分配空间
SQL> alter user itcast0909 quota unlimited on users;
用户已更改。
SQL> host cls
SQL> --admin option 系统权限 不会级联
SQL> show user
USER 为 "SYS"
SQL> create user jeff identified by password;
用户已创建。
SQL> create user emi identified by password;
用户已创建。
SQL> --DBA --> create session --> jeff
SQL> grant create session to jeff with admin option;
授权成功。
SQL> --jeff create session --> emi
SQL> conn jeff/password
已连接。
SQL> grant create session to emi;
授权成功。
SQL> --撤销
SQL> conn / as sysdba
已连接。
SQL> revoke create session from jeff;
撤销成功。
SQL> host cls
SQL> --GRANT OPTION 撤销对象权限会产生级联
SQL> show user
USER 为 "SYS"
SQL> conn scott/tiger
已连接。
SQL> --scott select on emp ---> jeff
SQL> grant select on emp to jeff with grant option;
授权成功。
SQL> --jeff: select on scott.emp --> emi
SQL> conn jeff/password
已连接。
SQL> grant select on scott.emp to emi;
授权成功。
SQL> --撤销
SQL>
SQL> conn scott/tiger
已连接。
SQL> revoke select on emp from jeff;
撤销成功。
SQL> host cls
角色的优点
易于权限管理
动态权限管理
选择有效的权限
SQL> conn / as sysdba
SQL> --创建经理角色
SQL> create role hr_mgr;
角色已创建。
SQL> --创建普通员工
SQL> create role hr_clerk;
角色已创建。
SQL> --两个权限 create session, create table
SQL> grant create session to hr_clerk;
授权成功。
SQL> grant create table,hr_clerk to hr_mgr;
授权成功。
SQL> --grant connect,resouce to scott;connect,resouce系统定义好的角色
SQL> /*
SQL> create user ****
SQL> grant connect,resouce to ***;
SQL> */
SQL> spool off
概要文件和用户
每个用户只能被关联到一个概要文件.
概要文件:
控制资源消费
管理帐户状态和密码有效期
可以创建概要文件em管理 profile
提供密码验证方法: VERIFY_FUNCTION
l
提供密码验证的方法可以强制密码约束
•
最短四个字符长度
•
密码不可以和用户名一样
•
密码必须至少一个数字,一个字符,一个其他符号
•
密码必须和上一个密码有三个以上字符不一样
•
l
提示
:
可以使用这个函数作为自己创建密码验证的函数的模版
.
l
<
oracle_home
>/
rdbms
/admin/
utlpwdmg.sql