Oracle权限管理

实训目的:

1、理解用户与模式的概念,掌握oracle中用户管理的基本方法

2、理解系统权限、对象权限的概念,掌握分配权限的方法

3、理解角色的概念,掌握角色的应用方法

实训内容:

一、用户管理与应用

1、查看用户与模式

在Oracle数据库中,可以使用以下SQL命令来查看所有用户和他们的默认表空间(模式): 

SELECT * FROM DBA_USERS 

如果你没有DBA权限,但想当前用户有权限查看的所有用户的信息,可以使用:  

SELECT * FROM ALL_USERS  

如果你没有DBA权限,但想查看当前用户的信息,可以使用: 

SELECT * FROM USER_USERS 

eg: 

 

2、创建用户

  • create user: 这是创建用户的SQL命令。
  • bcl: 这是新用户的用户名。
  • identified by bbccll: 这部分指定了用户的密码为bbccll

 create user bcl identified by bbccll;

3、给予新用户基本权限  create session ,  create any table

  • grant: 这是用于授予权限的SQL命令。
  • create session: 允许用户连接到数据库。
  • create any table: 允许用户在任何用户的模式下创建表(这是一个高级权限,通常不建议随意授予)。

grant create session , create any table to bcl;

4、调整用户的密码、锁定状态、配额等

密码修改

你可以使用ALTER USER命令来修改用户的密码。

 alter user bcl identified by new_password;

锁定/解锁用户

使用ACCOUNT LOCKACCOUNT UNLOCK来锁定或解锁用户。

-- 锁定用户

alter user bcl account lock;

-- 解锁用户

alter user bcl account unlock;

配额管理

在Oracle中,你可以为用户设置表空间配额(tablespace quota),限制他们在特定表空间中使用的空间量。

 -- 为用户设置表空间配额  
alter user bcl quota 100M on tablespace_name;  
  
-- 移除表空间配额  
alter user bcl quota unlimited on tablespace_name; -- 或指定具体的空间量

5、删除用户!!

命令解释

  • drop user: 这是用于删除用户的SQL命令。

SQL语句

注意:在删除用户之前,你需要确保该用户没有拥有任何对象(如表、视图、序列等),或者你需要使用CASCADE选项来删除用户及其所有对象。

-- 删除用户及其所有对象  
drop user bcl cascade;  
  
-- 如果用户没有对象,可以直接删除  
drop user bcl; 

二、权限管理与应用

系统权限system privilege 

对象权限object privilege    多   on objectName

1、授予或回收系统权限

系统权限(System Privilege)

  • 授予或回收系统权限使用GRANTREVOKE命令。

授予系统权限

 grant create session , create any table to bcl;

回收系统权限 

revoke create table from bcl; 

2、授予或回收对象权限

授予对象权限

假设我们有一个表my_table,并且想要授予用户bcl对该表的查询(SELECT)和插入(INSERT)权限:

grant select, insert on my_table to bcl; 

回收对象权限

如果我们想从用户bcl那里回收对my_table的查询权限:

revoke select on my_table from bcl;

3、转交管理权限或收回管理权限(权限传递)

在Oracle数据库中,权限的转交通常是指将权限的管理权授予另一个用户或角色,这样他们就可以代表原权限持有者来授予或回收权限。这通常涉及到ADMIN OPTION的使用。以下是如何进行权限传递的SQL语句示例:

授予管理权限:当授予一个用户或角色权限,并希望他们能将这些权限转交给其他人时,可以使用ADMIN OPTION。

-- 授予用户bcl创建会话的系统权限,并允许其转交给其他用户
GRANT CREATE SESSION TO bcl WITH ADMIN OPTION;

-- 授予角色BCL对my_table的SELECT和INSERT权限,并允许其转交给其他用户或角色
GRANT SELECT, INSERT ON my_table TO BCL WITH ADMIN OPTION;

 收回管理权限:如果需要收回之前授予的转交权限,可以使用REVOKE命令,同时指定CASCADE CONSTRAINTS,以确保所有通过该用户或角色间接授予的权限也被收回。

-- 收回用户bcl转交CREATE SESSION权限的能力
REVOKE CREATE SESSION FROM bcl CASCADE;

-- 收回角色BCL转交对my_table的SELECT和INSERT权限的能力
REVOKE SELECT, INSERT ON my_table FROM BCL CASCADE CONSTRAINTS;

 

三、角色管理与应用

role   一系列权限的命名集合,目的是简化权限管理的复杂性

1、创建角色 

create role BCL; 

2、将各类权限放入角色

grant create session, create table to BCL; 

3、将角色授予某用户

grant BCL to bcl; 

  • 25
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值