AAA:
Authentication: 身份验证 (你是谁)
Authorization: 权限管理 (你能作什么)
Audition: 审计 (你做过什么)
Authentication:
1.普通用户:
可以用 命令行创建用户
SQL> create user user01 identified by password; 创建用户01
SQL> grant create session to user01; 给01授权可以连接数据库
也可以用浏览器创建用户
2.外部用户:
external(os)验证:
操作系统中创建用户:
$ su -
Password:
[[email protected] ~]# useradd osuser
[[email protected] ~]# passwd osuser
$ sqlplus / as sysdba
外部用户使用固定的前缀:
SQL> show parameter os_auth
SQL> create user ops$osuser identified externally;
SQL> grant create session to ops$osuser;
不要su - osuser,环境变量保留:
$ su osuser
Password:
[[email protected] admin]$ sqlplus /
SQL> show user
USER is "OPS$OSUSER"
3.管理员用户:
管理员的身份验证:
本地连接:(三个条件)
1.本地连接,2.预先设置ORACLE_SID,3.操作系统用户是dba群组的成员
$ id
uid=1001(oracle) gid=1000(oinstall) groups=1000(oinstall),1031(dba),1032(oper)
$ sqlplus / as sysdba
SQL> show user
USER is "SYS"
修改第2个条件:
$Unset ORACLE_SID //取消变量
$echo $ORACLE_SID //查看变量
$Export ORACLE_SID=orcl //设置变量
$echo $ORACLE_SID //查看变量 有orcl
orcl
修改第3个条件:
$ su -
# usermod -G oper oracle 或
# gpasswd -d oracle dba
# exit
$ sqlplus / as sysdba
报错,权限不够
只要是dba群组中的成员,就可以不需要知道sys的口令,直接以sqlplus / as sysdba登录
并且身份为sys。
authorization:
create any table 系统的权限 create table 系统权限(当前用户名下)
alter any table 系统 alter table 对象级别权限
drop any table 系统 drop table 表的所有者可以删
dba+sysdba=sys
角色+系统权限=系统管理员
role:
角色就是数据库中的群组!
角色的作用:简化权限的管理,动态更新用户的权限。
预定义的角色:
SQL> select role from dba_roles;
创建角色:
SQL> create role hr_mgr;
SQL> create role hr_clerk;
SQL> grant select any table to hr_mgr;
SQL> grant select on hr.employees to hr_clerk;
SQL> grant hr_mgr to user01;
SQL> grant hr_clerk to user02;
user01/user02测试:
角色生效必须重新登录