oracle控制用户权限命令
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控制用户权限命令的更多相关文章
- Oracle(控制用户权限)
权限允许用户访问属于其它用户的对象或执行程序, ORACLE系统提供权限:Object 对象级.System 系统级 查看权限的数据字典: 字典名 含义 ROLE_SYS_PRIVS System p ...
- 如何实现Oracle修改用户权限 .
这里将介绍Oracle修改用户权限的实现过程,包括一些权限管理方面的东西.希望通过本文能对大家了解Oracle修改用户权限有所帮助. ORACLE数据库用户与权限管理 ORACLE是多用户系统,它允许 ...
- 转 oracle 学习- 用户权限角色
创建和删除用户是Oracle用户管理中的常见操作,但这其中隐含了Oracle数据库系统的系统权限与对象权限方面的知识.掌握还Oracle用户的授权操作和原理,可以有效提升我们的工作效率. Oracle ...
- 详解Oracle创建用户权限全过程
本文将介绍的是通过创建一张表,进而实现Oracle创建用户权限的过程.以下这些代码主要也就是为实现Oracle创建用户权限而编写,希望能对大家有所帮助. 注意:每条语语分开执行,结尾必须用分号; // ...
- oracle_控制用户权限
oracle_控制用户权限 ①对 限制 数据库安全: 系统安全 数据安全性 系统权限: 对于数据库的权限 对象权限: 操作数据库对象的权限 1.系统权限 ...
- Oracle查询用户权限
Oracle查询用户权限 -- 确定角色的权限select * from role_tab_privs ; 包含了授予角色的对象权限select * from role_ro ...
- Navicat连接Oracle数据库用户权限问题
解决Navicat连接Oracle数据库用户权限问题: 第一步:在cmd窗口运行[sqlplus], 第二步:输入Oracle的用户名和口令连接Oracle数据库, 第三步:执行授权代码,给用户授予D ...
- Oracle 学习笔记 13 -- 控制用户权限
数据库控制语言的功能室控制用户对数据库的存取权限. 用户对某类数据具有何种操作权限是有DBA决定的.Oracle 通过GRANT语句完毕权限的授予,通过REVOKE语句完毕对权限的收回. 权限分为系统 ...
- Oracle的用户权限和角色
用户和权限 LOCK|UNLOCK创建用户时是否锁定,默认为锁定状态.锁定的用户无法正常的登录进行数据库操作. --给普通用户SCOTT解锁,同时把SCOTT用户的密码进行修改 --语法结构:ALTE ...
随机推荐
- SpringCloud Alibaba实战(8:使用OpenFeign服务调用)
源码地址:https://gitee.com/fighter3/eshop-project.git 持续更新中-- 在上一个章节,我们已经成功地将服务注册到了Nacos注册中心,实现了服务注册和服务发 ...
- Docker笔记--操作容器命令
Docker笔记--操作容器命令 创建容器 docker [container] create-- 创建容器,使用docker [container] create命令新建的容器处于停止状态,可以使用 ...
- Linux中使用QT读取并显示温度传感器数值
环境: Ubuntu 16.04 64 bit QT5.13.1/QT5.12 原理 对于Linux来说一切都是文件,温度传感器也是个文件,如果要获取某个温度传感器的数值,可以读取相应的文件,Linu ...
- Akamai CDN刷新(通过Akamai cli 自动刷新)
1.刷新类型选择 根据官方介绍,可使用多种途径和方式来完成快速刷新 按照简便快捷高效的要求,暂时选择Akamai cli + url 来完成刷新. 2.二进制文件下载地址 文件下载地址:https:/ ...
- Layui 关闭自己刷新父页面
var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index); window.parent.locati ...
- Basic remains java入门题
Basic remains input: b p m 读入p进制的p,m, 求p%m ,以b进制输出 1 import java.util.*; 2 import java.math ...
- centos 8 安装 PostgreSQL-10
下载 PostgreSQL-10软件包 官网地址:https://www.postgresql.org/ 选择自己的版本 此处已postgresql-10.16-2-linux-x64.run安装为例 ...
- 第一章 - Java与线程
目录 01.Java和线程 02.Java与协程 03.CPU缓存结构和java内存模型 04.管程-悲观锁和锁优化 05.乐观锁 - 无锁方案 06.线程安全 07.线程池 08.JUC 09.高并 ...
- linux:mysql
数据库介绍 mysql与php是黄金搭档(LAMP.LNMP) 常见的数据库 Oracle.Sql server.Access.Mariadb.Ds2等 安装 安装前确保计算机时间准确 源码包安装 优 ...
- netcore3.1 + vue (前后端分离) ElementUI多文件带参数上传
vue前端代码 前端主要使用了ElementUI的el-uploda插件,除去业务代码需要注意的是使用formdata存储片上传时所需的参数 <el-upload class="upl ...