oracle用户创建及授权

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle创建用户并给用户授权查询权限 2013-07-26 16:44:58| 分类: Ora-basic | 标签: |举报 |字号大

小 订阅

DBA用户连接:
1、创建新用户
create user test identified by test;
2、授予connect权限
grant connect to test;
3、给指定用户的表或视图授予select(只读)权限
grant select on user1.table_name/view_name to test;
如果要对某用户下所有的表设置只读,可以先获取所有语句,
SELECT 'grant select on USER1.'|| table_name ||'to test;' from dba_tables where owner='USER1';
然后在命令行窗口执行,实现对user1用户下所有表的查看权限。
4、设置系统权限
如果想对所有表进行只读设置,可以对该用户授予select any table系统权限。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
今天做测试发布的时候发现在给一个用户赋予一个视图的select权限的时候报1720错误,现总结下。
视图授权:
e.g.
用户A存在表t1,t2
用户B下存在视图v1(v1是根据t1、t2创建的)
需要给用户C授权v1视图的访问权限。
一般我们就直接给用户B select权限,如下:
grant select on t1 to B;
grant select on t2 to B;
但是,要想给用户C授权v1视图的访问权限,那么首先用户B需要有授权t1、t2的权限!
因此:
grant select on t1 to B with grant option;
grant select on t2 to B with grant option;
执行了上述语句,用户B才有授权v1给用户C的能力。
如果不按上面的注意事项操作,则会在用户B授权视图的时候,报错:
ORA-01720 grant option does not exist for 'string.string'
Cause: A grant was being performed on a view and the grant option was not present for an underlying object.
Action: Obtain the grant option on all underlying objects of the view.
最后,用户B将v1的读取权限授权给用户C。
grant select on v1 to C;

另:
创建同义词:
create synonym u1.t1 for t1;
存储过程包授权:
grant execute on p1 to u1;
表授权:
grant select on t1 to u1;


linux ntpdate客户端与ntpd服务器端设置时间同步 linux文件颜色+umask
oracle 10g 创建只读用户 2011-10-20 15:45:17| 分类: DailyOperation | 标签:只读用户创建 |举报 |字号大

小 订阅
Create user xok Identified By fucku; //创建用户

GRANT SELECT ANY DICTIONARY TO xok; //授予所有字典的查询权限

GRANT SELECT ANY SEQUENCE TO xok; //授予所有序列的查询权限

GRANT SELECT ANY TABLE TO xok; //授予所有表的查询权限

GRANT CREATE SESSION TO xok; //授予创建会话

GRANT SELECT ANY VIEW TO xok; //授予所有视图的查询权限
#——
其实只要给用户赋予create session, select any table两个系统权限,该用户

就能查询其他schema下表和视图

grant create session to username;
grant select any table to username;
但是这样授权后,sys下的对象还是不能select的,因为sys是数据字典的拥有者,要select sys下的对象,需要select any dictionary的权限

grant select any dictionary to username;


修改密码:
su - oracle
Password: *****
sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Wed Apr 2 14:11:35 2014

Copyright (c) 1982, 2011, Oracle. All rights reserved.


Connected to:
Oracle Database 11g Release 11.2.0.3.0 - 64bit Production

SQL> alter user sys identified by *****;

User altered.

SQL> alter user system identified by *****;

User altered.

SQL> commit;

Commit complete.

相关文档
最新文档