oracle数据库的权限问题

原创 2012年03月26日 21:11:05

限分为系统权限(system privilege)和对象权限(object privilege)

所谓系统权限是指用户对数据库的相关权限。允许用户在数据库中执行特定操比如执行DDL。常用的系统特权:

create session:连接到数据库上

create sequence:创建序列。序列是一系列数字,通常用来填充主键值。

create synonym:创建同名对象。同名对象用来引用其它模式中的表。

create table

create any table

drop table

drop any table

create procedure

execute any procedure

create user

drop user

create view

授权

向用户授予系统特权,如果后面使用with admin option选项,则表示所授予的用户可以把这种特权再授予其它用户。

GRANT EXECUTE ANY PROCEDURE TO steve WITH ADMIN OPTION

CONN steve/button

GRANT EXECUTE ANY PROCEDURE TO gail;

将一种特权授予PUBLIC,可以将特权授予所有的用户。

CONN system/manager

GRANT EXECUTE ANY PROCEDURE TO PUBLIC;

检查授予用户的系统特权

通过查询user_sys_privs可以检索某个用户具有哪些系统特权.

SELECT * FROM user_sys_privs

撤权

REVOKE EXECUTE ANY PROCEDURE FROM steve

在撤销steve用户的execute any procedure特权时—steve已经将这种特权又授权了gail用户,gail用户仍然会保留这些特权。

所谓对象权限是指用户对其它用户的数据对象操作的权限。比如对表执行DML。常用的对象特权:

selectupdateinsertdeleteexecuteall (前四种的总称)

授权

GRANT SELECT ,INSERT,UPDATE ON store.products TO steve

下面这个例子将对last_namesalary列的UPDATE特权授予steve用户.

GRANT UPDATE(last_name,salary) ON store.products TO steve

此处可以使用WTIH GRANT OPTION选项

检查已授予的对象特权通过查询user_tab_privs_made可以检查某个用户对哪些表向其它用户开放了哪些对象特权。

SELECT *

FROM user_tab_privs_made

WHERE table_name=’PRODUCTS’

通过查询user_col_privs_made可以检索某个用户对哪些列开放了哪些特权。

SELECT *

FROM user_col_privs_made

检索已接受的对象特权

通过查询user_tab_privs_recd可以检查某个用户被授予了哪些表上的哪些对象特权。

通过查询user_col_privs_recd可以检查某个被授予了哪些列上的对象特权。

注意:

当所授予的权是系统特权时,并且使用WITH ADMIN OPTION选项使该系统特权向下传递,当撤销授予者的系统特权时,其所向下授予的系统特权不在撤销。

当授予的权是对象特权时,并且使用WITH GRANT OPTION选项使该对象特权向下传递,当撤销授予者的系统特权时,其所向下授予的对象特权一并收回。

 

关于Oracle数据库的用户权限问题

在oracle数据库中,有两种登录方式: 1:操作系统验证方式。 2:数据库验证方式。 在oracle数据库中,普通用户默认使用数据库方式验证,即conn yanhao/123456; ...
  • Mr_HHH
  • Mr_HHH
  • 2016年01月20日 20:24
  • 225

oracle数据库权限管理

  • 2013年05月31日 20:15
  • 27.71MB
  • 下载

oracle数据库01-连接&用户&权限

Oracle数据库是Oracle(中文名称叫甲骨文)公司的核心产品,Oracle数据库是一个适合于大中型企业的数据库管理系统。      Oracle数据库涉及银行、电信、移动通信、航空、保险、金融、...

Abp项目模板使用Oracle数据库包括系统权限管理

Abp项目模板使用Oracle数据库包括系统权限管理 by dacong 参考:Abp项目的创建以及Oracle的支持         aspnet-zero-core 使用MySql数据库 ...
  • dacong
  • dacong
  • 2017年12月10日 04:06
  • 44

使用PLSQL 创建Oracle数据库用户并设置权限

1、 首先在 PLQL Developer 中打开数据库。使用 "sys" 用户,输入数据库名称,输入该数据库 ”sys” 用户的密码,在 ”Connect as” 组合框中选中 “SYSDBA”。单...
  • kbest
  • kbest
  • 2011年05月14日 22:28
  • 3562

Oracle数据库(权限、用户、角色、基本知识介绍)

Oracle数据库推荐以引用博客: http://blog.csdn.net/leshami/article/details/5611738 http://www.cnblogs.com/...

Oracle数据库如何查看当前用户角色权限及默认表空间

http://database.51cto.com/art/201108/280474.htm 在Oracle数据库操作中,有时候我们需要查看当前用户的一些信息,包括用户拥有的角色权限信息、用户表空...

oracle数据库管理--管理权限和角色

引言:          当刚刚建立新用户时,用户没有任何权限,也不能执行任何操作。如果要执行某种待定的数据库操作,则必须为其授予系统权限;如果用户要访问其它方案的对象,则必须为其授予对象权限。为了...

Oracle数据库(权限、用户、角色、基本知识介绍)

oracle(权限/用户/角色)
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle数据库的权限问题
举报原因:
原因补充:

(最多只允许输入30个字)