第二十四天 用户管理

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:

[root@node1 ~]# useradd osuser

[root@node1 ~]# 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:

[osuser@node1 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测试:

 

角色生效必须重新登录

 

原文地址:https://www.cnblogs.com/zxk666/p/7337341.html