Oracle杂记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle杂记相关的知识,希望对你有一定的参考价值。
用户A给用户B授权表的权限
--使用dba登录Oracle授权:
GRANT
SELECT
,
UPDATE
,
DELETE
ON
usera.<表名>
TO
userb;
--或
GRANT
ALL
ON
usera.<表名>
TO
userb;
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;的权限
以上是关于Oracle杂记的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Toad for Oracle 中使用自定义代码片段?
Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)(代码片段
Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段