ORACLE控制用户权限:

  首先使用系统中的拥有DBA权限的账号(system)登录;

一、创建用户:

  1、DBA使用creater user语句创建用户:

--创建登录用户名为:user01,密码为:user01
create user user01 identified by user01;

  此时登录会显示:

ORA-01045:user USER01 lacks CREATE SESSION privilege;logon denied;
--用户user01缺乏create session权限,拒绝登录;

  2、然后我们使用grant命令给user01用户赋予create session权限,执行以下命令:

--赋予user01用户create session权限
grant create session to user01;

  此时登录,登录成功,然后我们使用该用户创建一张表:

create table test_table(
id int,
name varchar2(10)
);

  这时显示:ORA-01031:权限不足

  然后我们给用户赋予创建表的权限

grant create table to user01;

  此时显示:ORA-01950:对表空间 “USERS” 无权限;

  注:接下来的命令需要使用拥有DBA权限的用户(system)

 

--给user01用户赋予表空间,unlimited(无限制),也可用具体的大小(10M)
alert user user01 quota unlimited on users;

  此时再执行创建表语句即可成功;

  然后执行查询语句:

select * from test_tbale;

  此时查询表数据,执行成功(此时表中无数据)

  3、修改用户的部分权限

    此时在user01用户下修改user02用户的表空间:

--修改user02的表空间为无限制
alert user user02 quota unlimited on users;

  此时显示:ORA-01301:权限不足(因为只有系统用户有权限修改)

  但是自己想要修改自己的部分权限是可以的:

--修改user01用户的密码为user
alert user user01 identified by user;

  这时是可以的。

二、创建角色并赋予权限

  创建角色;

  为角色赋予权限;

  再将角色赋予用户;

1、创建角色

create role my_role;

2、为角色赋予权限:

--为角色my_role赋予登录,创建表,创建视图,创建存储过程等权限
grant create session,create table,create view,create procedure to my_role

3、将角色赋予用户:

--将角色my_role赋予了用户user02,user02也就拥有的my_role所拥有的权限
grant my_role to user02;

三、对象权限

  不同的对象拥有不同的对象权限;

  对象的拥有者拥有所有权限;

  对象的拥有者可以向外分配权限;

CREATE SESSION
CREATE TABLE
CREATE SEQUENCE
CREATE TABLE
CREATE VIEW

1、将scott用户下的employees表的查询,修改权限赋予user01用户:

grant select,update on sott.employees to user01;

2、with grant option 和 public 关键字 -- 使用户同样拥有分配的权利

  将scott用户的departments表的查询权限赋予user01用户:

grant select on scott.departments to user01 with grant option;

  意思是:用户user01可以将赋给自己的scott用户的departments表的查询权限再赋予其他的用户

3、使用scott用户登录执行以下命令:

grant select,update on locations to public;

  意思是:用户scott将自己的locations表的查询,修改权限赋予了所有用户;

四、收回对象权限

  查询权限分配情况(select * from ...)

 
数据字典视图 描述
ROLE_SYS_PRIVS 角色拥有的系统权限
ROLE_TAB_PRIVS 角色拥有的对象权限
USER_ROLE_PRIVS 用户拥有的角色
USER_TAB_PRIVS_MADE 用户分配的关于表对象权限
USER_TAB_PRIVS_RECD 用户拥有的关于表对象权限
USER_COL_PRIVS_MADE 用户分配的关于列的对象权限
USER_COL_PRIVS_RECD 用户拥有的关于列的对象权限
USER_SYS_PRIVS 用户拥有的系统权限

1、收回用户user01关于employees表的查询权限:

revoke select on employees from user01;

 

总结:

  DCL控制数据库权限

  此时您已经可以熟练的对数据库权限进行相关操作了

语句 功能
CREATE USER 创建用户(通常由DBA完成)
GRANT 分配权限
CREATE ROLE 创建角色(通常由DBA完成)
ALERT USER 修改用户密码
REVOKE 收回权限

oracle控制用户权限命令的更多相关文章

  1. Oracle(控制用户权限)

    权限允许用户访问属于其它用户的对象或执行程序, ORACLE系统提供权限:Object 对象级.System 系统级 查看权限的数据字典: 字典名 含义 ROLE_SYS_PRIVS System p ...

  2. 如何实现Oracle修改用户权限 .

    这里将介绍Oracle修改用户权限的实现过程,包括一些权限管理方面的东西.希望通过本文能对大家了解Oracle修改用户权限有所帮助. ORACLE数据库用户与权限管理 ORACLE是多用户系统,它允许 ...

  3. 转 oracle 学习- 用户权限角色

    创建和删除用户是Oracle用户管理中的常见操作,但这其中隐含了Oracle数据库系统的系统权限与对象权限方面的知识.掌握还Oracle用户的授权操作和原理,可以有效提升我们的工作效率. Oracle ...

  4. 详解Oracle创建用户权限全过程

    本文将介绍的是通过创建一张表,进而实现Oracle创建用户权限的过程.以下这些代码主要也就是为实现Oracle创建用户权限而编写,希望能对大家有所帮助. 注意:每条语语分开执行,结尾必须用分号; // ...

  5. oracle_控制用户权限

     oracle_控制用户权限 ①对 限制     数据库安全:     系统安全     数据安全性     系统权限: 对于数据库的权限     对象权限: 操作数据库对象的权限 1.系统权限 ...

  6. Oracle查询用户权限

    Oracle查询用户权限 -- 确定角色的权限select * from role_tab_privs ;              包含了授予角色的对象权限select * from role_ro ...

  7. Navicat连接Oracle数据库用户权限问题

    解决Navicat连接Oracle数据库用户权限问题: 第一步:在cmd窗口运行[sqlplus], 第二步:输入Oracle的用户名和口令连接Oracle数据库, 第三步:执行授权代码,给用户授予D ...

  8. Oracle 学习笔记 13 -- 控制用户权限

    数据库控制语言的功能室控制用户对数据库的存取权限. 用户对某类数据具有何种操作权限是有DBA决定的.Oracle 通过GRANT语句完毕权限的授予,通过REVOKE语句完毕对权限的收回. 权限分为系统 ...

  9. Oracle的用户权限和角色

    用户和权限 LOCK|UNLOCK创建用户时是否锁定,默认为锁定状态.锁定的用户无法正常的登录进行数据库操作. --给普通用户SCOTT解锁,同时把SCOTT用户的密码进行修改 --语法结构:ALTE ...

随机推荐

  1. Maven项目无法下载JAR包,输入mvn help:system出现No plugin found for prefix 'help' in the current project and in the plugin groups的解决方案

    这个问题困扰了我很久,一直无法解决:我在虚拟机里面按照同样的步骤配置了三次maven项目,每次都能成功:可一旦到外面maven项目总是创建失败,输入mvn help:system总是出现No plug ...

  2. Redis客户端管理

    1.客户端管理 Redis提供了客户端相关API对其状态进行监控和管理,本节将深入介绍各个API的使用方法以及在开发运维中可能遇到的问题. 1.1 客户端API 1.client list clien ...

  3. 6、安装kvm虚拟机

    6.1.虚拟机开启虚拟化: 6.2.检查linux虚拟机cpu是否开启了虚拟化: egrep -o 'vmx|svm' /proc/cpuinfo vmx 6.3.安装kvm管理和安装kvm虚拟机的软 ...

  4. layui 监听checkbox 、radio、switch选中改变事件

    form.on('checkbox(filter)', function(data){ console.log(data.elem); //得到checkbox原始DOM对象 console.log( ...

  5. POJ 3761:Bubble Sort——组合数学

    题目大意:众所周知冒泡排序算法多数情况下不能只扫描一遍就结束排序,而是要扫描好几遍.现在你的任务是求1~N的排列中,需要扫描K遍才能排好序的数列的个数模20100713.注意,不同于真正的冒泡排序算法 ...

  6. 『心善渊』Selenium3.0基础 — 28、unittest中测试套件的使用

    目录 1.测试套件的作用 2.使用测试套件 (1)入门示例 (2)根据不同的条件加载测试用例(了解) (3)常用方式(推荐) 1.测试套件的作用 在我们实际工作,使用unittest框架会有两个问题: ...

  7. Sql Server(3)运算符的使用

    where 订货日期 between '2017/10/24' and '2017/10/30'  小的写在前面,大的后面,不可以写反 一:运算符的使用 T-SQL的运算符应用指派运算符算术运算符比较 ...

  8. 「Ynoi2015」我回来了

    「Ynoi2015」我回来了 这东西已经不是 Ynoi 了,因为太水被嫌弃了. 如何提升自己的数据结构能力?从Ynoi做起 题目链接 其实这个题很小清新的辣,而且不卡常. 由于边权为 \(1\),所以 ...

  9. python08篇 发邮件和异常处理

    一.发邮件 import yamail smtp = yamail.SMTP(host='smtp.qq.com', # 改成自己邮箱的服务器即可,其他的比如smtp.163.com user='65 ...

  10. SuperEdge 易学易用系列-SuperEdge 简介

    关于 SuperEdge SuperEdge 是由腾讯.Intel.VMware.虎牙直播.寒武纪.首都在线和美团等多家公司共同发起的边缘容器管理系统,它基于原生 Kubernetes.针对边缘计算和 ...