Oracle菜鸟之grant授权

<pre name="code" class="sql">1、给数据库用户授权(对象为用户表)
GRANT privilege[, ...] ON object[, ...] TO { PUBLIC | GROUP group| username}

privilege:
	select:查询
	insert:插入
	update:更新
	delete:删除
	rule:
	all:所有

grant select,insert,update on tablename to public;
给所有用户授予查询、插入、更新tablename表的权限
revoke select,insert,update on tablename from public;//收回所有用户查询、插入、更新tablename表的权限

object:
	table:表
	view:视图
	sequence:序列
	index:索引

grant select,insert,update on tablename,viewname,sequencename,indexname to public;

public:对所有用户开放权限
GROUP groupname:对该组所有用户开放权限
username:对指定用户开放权限

2、给数据库用户授权(对象多为系统表,如dba可以查看的表)

grant dba to username;
不给用户授予dba权限,用户将无法查看系统表,例如v$datafile,dba_data_files等
revoke dba from username;//对用户username回收dba权限
注:如果使用pl/sql登录,授予dba权限后,需要重新登陆(初始理解,错误)
后经验证,不需要重新登陆,只需要重新打开一个会话就可以
理解:数据库的所有权限操作,都是以会话为单位,如果当前会话执行时没有dba权限,即便是已经重新赋予了权限,在当前会话中也是不起作用的
而如果当前会话有dba权限,而后台取消了权限,那么当前会话的dba权限也不会消失

grant connect to username;
不给新建用户授予connect权限,新建用户无法通过SID或SERVICE_NAME连接数据库实例,即无法登录数据库
revoke connect to username;//对用户username回收connect权限

grant resource to username with admin option;
grant unlimited tablespace to username with admin option;
不给新建用户授予resource权限,新建用户无法创建表
revoke resource from username;//对用户回收resource权限

3、查看指定用户有哪些系统权限
select * from dba_role_privs where grantee=upper('username');

4、查看指定用户有哪些对象权限
select * from dba_tab_privs where grantee=upper('username');

可能遇到问题:
1、当在一个新建数据库用户上创建表失败时,可以查看系统权限
	在当前用户执行select * from dba_role_privs where grantee=upper('username');如果不能执行(提示表或视图不存在),说明没有dba权限
	解决方法:可以登录sys账户赋予dba权限
	登录sys:sqlplus / as sysdba
	给username赋权限:grant dba to username;

	也可以直接登录sys账户,select * from dba_role_privs where grantee=upper('username'),如果granted_role的值没有dba,说明没有dba权限

权限相关的查询和赋予:
所有权限的赋予均是在有赋予权限的用户下进行,此处授权用户都是sys用户
1、select * from dba_role_privs where grantee=upper('luyongpeng');
其中,admin_option是通过在授权时添加with admin option 选项定义
grant dba to luyongpeng with admin option;//admin_option为YES,如果不加with admin option 选项,则admin_option为NO
使用grant dba to luyongpeng;无法覆盖之前的权限
但grant dba to luyongpeng with admin option 可以覆盖grant dba to luyongpeng;的权限
<img src="http://img.blog.csdn.net/20140801130948598?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2ltcGxlX29uX2Zvb3Q=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<pre name="code" class="sql">2、select * from dba_sys_privs where grantee=upper('luyongpeng');
	该权限可以通过执行grant dba to luyongpeng;时自动加上,但admin_option默认为NO
	可以通过grant unlimited tablespace to luyongpeng with admin option;将admin_option修改为YES
	当执行revoke dba from luyongpeng;时,系统会同时回收dba权限和unlimite tablespace权限
	如果想保留dba权限,但回收unlimited tablespace权限,可以通过revoke unlimited tablespace from luyongpeng;实现


<pre name="code" class="sql">3、select * from dba_tab_privs where grantee=upper('luyongpeng');
	该权限表现了当前用户对owner的哪些表具有何种操作权限,并且grantable字段值YES表明了luyongpeng用户可以继续对其他用户开放signtest表的权限


<pre name="code" class="sql">执行grant insert on signtest to luyongpeng with grant option;
	grant delete on signtest to luyongpeng with grant option;
后,重新查询dba_tab_privs表信息如下,可以看到当加上with grant option选项后,GRANTABLE字段值为YES



Oracle菜鸟之grant授权

时间: 2024-11-09 02:02:27

Oracle菜鸟之grant授权的相关文章

Oracle菜鸟之如何创建和删除表空间

1.创建临时表空间 创建表空间时,dbf文件一般存放在datafile文件的存放目录下(一般是在实例名命名的文件夹下面) 可以通过 select * from v$datafile;查看所有数据文件的存放位置 create temporary tablespace 表空间名 tempfile '/data/oradata/CHUANSHU/datafile/tmp_文件名.dbf' size 50M autoextend on next 1M maxsize 1024M extent manag

Oracle 权限(grant、revoke)

200 ? "200px" : this.width)!important;} --> 数据库版本:11GR2 一.介绍 在oracle中没有其他数据库系统中的数据库的概念,对象都是创建在用户下.当前用户具有当前用户下所有对象的所有权限无论该对象是否是当前用户所创建.举个简单例子创建一个用户授予该用户连接权限,然后用管理员用户在该用户下创建一张表,该用户可以删除管理员在该用户下创建的表. 二.权限 权限主要可以分成三类:系统权限.角色.对象权限.角色是一类权限的分组. 1.系统权

Oracle 创建用户并且授权

以sysdba登陆 创建用户:CREATE USER username IDENTIFIED BY password; 授予(角色)权限:GRANT CONNECT,RESOURCE TO username; 注:oracle有三类标准角色:CONNECT,RESOURCE,DBA 当然用户自己(只要拥有权限),可以自己创建角色并赋予相应权限. Oracle 创建用户并且授权,布布扣,bubuko.com

oracle 创建用户,授权用户,创建表,查询表

原文:oracle 创建用户,授权用户,创建表,查询表 假设oracle10g所有的都已经安装和配置好 第一步:win+R,进入运行,cmd; 第二步:连接超级管理员sysdba,语句sqlplus / as sysdba; 第三步:(假设连接成功)  输入conn / as sysdba; 第四步:(显示连接成功)create user bony identified by b123; 第五步:grant resource,connect to bony; 第六步:conn bony/b123

Oracle Database - ORA-01720 - grant option does not exist for &#39;AnObject&#39;

Description 当一个不是 MY_TABLE 这个表的 Owner - NOT_OWNER_USER  试图 grant MY_TABLE 的权限时,报错: Error report: SQL Error: ORA-01720: grant option does not exist for 'OWNER_SCHEMA".MY_TABLE' 01720. 00000 - "grant option does not exist for '%s.%s'" *Cause:

在ASP.NET中基于Owin OAuth使用Client Credentials Grant授权发放Token

OAuth真是一个复杂的东东,即使你把OAuth规范倒背如流,在具体实现时也会无从下手.因此,Microsoft.Owin.Security.OAuth应运而生(它的实现代码在Katana项目中),帮助开发者偷了不少工,减了不少料. 这篇博文试图通过一个简单的示例分享一下如何基于Microsoft.Owin.Security.OAuth,使用Client Credentials Grant授权方式给客户端发放access token. Client Credentials Grant的授权方式就

oracle菜鸟学习之 表操作

首发:http://www.arppinging.com/wordpress/?p=96 oracle菜鸟学习之 表操作 1.创建表 在oracle中,创建表使用create table来实现 SQL> create table student(sno number(6),sname varchar2(12),address varchar2(20)); Table created. SQL> desc student; Name Null? Type --------------------

Oracle菜鸟学习之 Oracle基础命令

首发:http://www.arppinging.com/wordpress/?p=93 Oracle菜鸟学习之 Oracle基础命令 1.connect和show user 连接用户和查看当前用户 SQL> show user; USER is "SCOTT" SQL> conn /as sysdba Connected. SQL> show user USER is "SYS" SQL> 2.clear screen 清除屏幕输出 3.s

Oracle菜鸟学习之在RedHat 6.5上安装Oracle

Oracle菜鸟学习之在RedHat 6.5上安装Oracle 11G 首发:http://www.arppinging.com/wordpress/?p=90 安装前准备工作 上传数据库软件至/tmp/下,并修改文件权限 chmod -R 755 /tmp/database/ 创建用户和组 创建oracle用户,并将oracle用户加入oinstall和dba组,后面安装的时候需要用到 [[email protected] ~]# groupadd oinstall [[email prote