Oracle-用户权限与管理

Oracle-用户权限与管理

目标:

1,掌握建立用户、概要文件的使用

2,掌握系统权限的含义及授予、回收

3,掌握对象权限的含义及授予、回收

4,掌握角色的含义、对角色授予权限、把角色分配给用户

 

Oracle 11g默认用户

SYS:用于维护系统信息和管理实例,数据库所有的数字字典表和视图存储在SYS模式中;

SYSTEM:默认的系统管理员,管理数据库用户、权限和存储等;

SCOTT:scott用户是Oracle数据库的一个示范账户,在数据库安装时创建

 

Oracle 11g创建用户

1.想要连接到Oracle数据库,需要有一个用户账户;

2.每个用户都有一个默认表空间和临时表空间;

3.命令语法:create user test1 identified by test1; [创建一个用户test1,密码是test1]

 

 

Oracle 11g 概要文件 profile

     Oracle系统为了合理分配和使用系统的资源提出了概要文件的概念。所谓概要文件,就是一份描述如何使用系统的资源(主要是CPU资源)的配置文件。将概要文件赋予某个数据库用户,在用户连接并访问数据库服务器时,系统就按照概要文件给他分配资源。 

    Profile(概要文件)管理用户1

当创建用户时候,如果没有指定profile,那么Oracle把名字叫default的profile赋予给用户。

   指定test1只能最多输入3次密码,

   创建profile文件:create  profile  pro1 limit failed_login_attempts 3 password_lock_time 2;

   其中,FAILED_LOGIN_ATTEMPTS:用于指定联系登陆的最大失败次数. PASSWORD_LOCK_TIME:用于指定帐户被锁定的天数. 

创建属于pro1的用户:

    create user   aa identified by aa profile pro1;

修改用户的profile文件:

alter user test1 profile pro1;

Profile(概要文件)管理用户2

解除锁定: alter  user  test1  account  unlock;

   终止口令:需要每隔10天修改密码,最多宽限2天:ALTER PROFILE "PRO1" LIMIT PASSWORD_LIFE_TIME 10 PASSWORD_GRACE_TIME 2。

  删除profile:drop profile pro1 cascade; 使得test1的profile重新变成了default 

 

Oracle 11g-权限【系统权限+对象权限】

q权限指的是执行特定命令或访问数据库对象的权利

q权限有两种类型,系统权限和对象权限

q系统权限允许用户执行某些数据库操作,如创建表就是一个系统权限

q对象权限允许用户对数据库对象(如表、视图、序列等)执行特定操作

系统权限

授予用户权限,可以是系统权限或者对象权限。

   GRANT privilege [,privilege…]

   TO  user [, user|role, PUBLIC…] 

    [WITH ADMIN OPTION]; 说明:包含了WITH ADMIN OPTION,只能是系统权限。

收回系统权限REVOKE privilege FROM user;

例子:

赋予test1用户连接到数据库的系统权限:grant create session to test1;

赋予test1用户创建表的系统权限:grant create table to test1;

赋予test1用户任意使用表空间的系统权限:grant unlimited tablespace to test1;

 

对象权限

   对象权限:访问某个用户的特定对象(如表、视图等)

的对象权限(select on scott.student) 

 GRANT object_privilege [columns…]

   ON  object  TO  user [, user|role, PUBLIC…] 

    [WITH GRANT OPTION];

  收回对象权限REVOKE:

   REVOKE privilege  ON object 

   FROM {user|role|PUBLIC};

例:

赋予test1用户查询Scott的emp表的权限:grant select on scott.emp to test1;

       赋予test1用户增删改查Scott的emp表的权限:grant all on scott.emp to test1;

       收回test1用户查询Scot的emp劝限:revoke select on scott.student from test2;

       授予精确到列上的对象权限:允许test1用户更新scott中emp表的ename、sal列:              grant update(ename,sal) on scott.emp to test1;


Oracle授权中的with admin option 和with grant option


[with admin option]:   当给一个用户授予系统权限时带上with admin option,他可以把此权限授予给其他用户、角色,而在revoke授予给这个用户的系统权限时不会级联回收他授予给其他用户的权限。如授予给A用户p系统权限时带有with admin option参数,此时A把系统权限p授予给用户B,然后revoke收回了授予A用户的p权限,这时A授予给B的p权限不会被级联收回,就是说B还拥有p系统权限。

[with grant option]:而对象权限的参数with grant option却会级联收回对象权限。如授予给A用户o对象权限时带有with grant option参数,A把o对象权限grant给用户B,此时如果revoke授予给A的o对象权限,会把B被授予的o对象权限也revoke。

Oracle 11g-角色管理

角色管理:角色是一组相关权限的组合,可以将权限授予角

色,再把角色授予用户,以简化权限管理。

(1)创建角色CREATE ROLE,应该具有CREATE ROLE系统权限。  

   CREATE ROLE role_name;

(2) 授予角色权限,可以是系统权限或者对象权限。

   GRANT privilege TO ROLE;

例: grant create session ,create any table, drop any table to role1;

(3) 将角色授予用户

    GRANT role TO user;

例: grant role1 to test2;

(4) 从用户收回角色

    REVOKE  role  FROM  user;

例子:

CONNECT角色允许test1用户连接至数据库,并创建数据库对象:

Grant connect to test1;

RESOURCE角色允许test1用户使用数据库中的存储空间:

Grant resource to test1;

 

Oracle 11g-更改和删除用户

例子:

修改test1用户的密码:alter user test1 identified by test111;

删除test1用户模式:drop user test1; [cascade 加上这个参数会把其创建的表都删掉]

 

 

Oracle 11g-用户权限与管理的练习题

1.创建新用户ximing1,密码是ximing1,查看系统的所有用户名;

2.设置概要文件赋予给ximing1用户,名字为:ximing_profile ,要求:登陆3次失败后锁定用户,锁定时间2天,口令的有效期10天,可延迟2天后锁定;登陆em查看结果;

3.尝试三次错误登陆,待ximing1用户被锁定后,进行解锁;

4.Ximing1用户需要有连接到数据库且创建表ABC;查看test1被授予的权利有哪些

5.Ximing1用户可以查询和修改scott.emp表,把scott.emp的sal值改为1000;

6.创建test2用户,与用户test1进行级联授权和收回权利的实验,create session

7.创建用户test3,创建角色role3,赋予连接数据库,创建表的权利,将角色应用与用户test3上

8.理解系统默认的几个常用的角色:connect resource &&??

9.更改test3 的密码为test333

10.删除test1、2、3用户

 

答案:

1.用system用户连接到数据库

A:create user test1 identified by test1;

B:select username from dba_users;

2.

A:create profile ximing_profile limit failed_login_attempts 3 password_lock_time 2 password_life_time 10 password_grace_time 2;

B:alter user test1 profile ximing_profile;

3.

A:alter user test1 account unlock;

4.

A:grant create session to test1;

B:grant create table to test1;

C:grant unlimited tablespace to test1;

D:select * from dba_sys_privs d where d.grantee=TEST1;

5.

A:grant select on scott.emp to test1;

B:grant update on scott.emp to test1;

C:update scott.emp set sal=1000;

6.

A:create user test2 identified by test2;

B:Grant create session to test1 with admin option;//在system上

C:Grant create session to test2;//在test1用户上

D:revoke create session from test1;//在system上

F:conn test2/test2@orcl; //成功,即使test1的create session收回,test2也没有被收回

7.

A:create role role3

B:grant create session,create table,unlimited tablespace to role3;

C:grant role3 to test3;

D:select * from dba_roles;//查看有什么角色

8.

A:connect角色:包含create session

Select * from dba_sys_privs d where d.grantee=CONNECT;

A:resource角色:包含基本上创建表的各种权利,很多

Select * from dba_sys_privs d where d.grantee=RESOURCE;

9.

alter user test3 identified by test333;

10.

drop user test1 cascade; 

drop user test2 cascade; 

drop user test3 cascade; 

[cascade]参数:如果用户创建了表,需要加上此参数连带把表删除;

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章