我以sysDBA登录类型,用system账号建表后,后来我又以normal登录类型,查询刚建的表,根本无法查询到刚建的表
后来,我以另一个账号登陆,这个账号被我授权由select权限,也是无法查询这个表
对于oracle的用户与角色、表之间的关系,有些浑浊,请知道的给与说明一下,谢谢
后来,我以另一个账号登陆,这个账号被我授权由select权限,也是无法查询这个表
对于oracle的用户与角色、表之间的关系,有些浑浊,请知道的给与说明一下,谢谢
解决方案 »
- oracle中'/' 是什么意思
- OCI获取结果集
- 视图中查询大量数据表现太慢如何优化(关键字段已建索引),高手指点下。。。
- 9i用Enterprise Manager Console导出数据库出现"ora-00972 标识过长"问题,求救!
- ---------------月份跨年度查询数据------------【100分求助】
- 存储过程
- Oracle10g安装后,密码忘了,怎么登录、修改密码(新手问题,请多关照)
- 基本问题:如何在sql*plus or sqlplus worksheet中运行调试存储过程?
- 如果将字符串型字段如REGDATE(8位,20161230)格式化为'2016-12-30'
- 有问题,Oracle WM VirtualBox安装不上
- oracle如何实现excel的动态计算功能
- 时间的问题
已连接。
SQL> show user;
USER 为"SYSTEM"SQL> conn system/111111 as sysdba
USER 为"SYS"所以这样的话sysdba创建的对象都在sys的schema里了。这样你normal登录的话,用system访问sys的表空间,需要带上sys.tablanem这样的方式了。
Resource:用户可以写procedure,trigger,package
是的,往往我们在用system用户创建一个用户之后,直接grant dba to user_name
也不要给dba这个权限了,除非你确实需要这个权限一般我们都是给普通用户connect,resource这两种role的身份,connect和resource是oracle里的两种role,这两种role聚合了一定的权限。所以赋予了这样的role,你就拥有这样的权限了。你可以通过
role_sys_prvis这个数据字典表,知道具体的role的系统权限,注意这里我说到的是系统权限,在ORacle里权限有几种系统权限,角色权限,对象权限,你可以详细看看这里的知识了,或者等待我的blob文来介绍这里我们可以先示范一下查查这个connect的角色具有哪些权限通过role_sys_privs表
如下
SQL> select * from role_sys_privs where role='CONNECT';
ROLE PRIVILEGE ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
CONNECT CREATE VIEW NO
CONNECT CREATE TABLE NO
CONNECT ALTER SESSION NO
CONNECT CREATE CLUSTER NO
CONNECT CREATE SESSION NO
CONNECT CREATE SYNONYM NO
CONNECT CREATE SEQUENCE NO
CONNECT CREATE DATABASE LINK NO
8 rows selected通过上面我们可以看到,如果你给一个用户一个connect的权限的话,实际上这个用户就具有了
CREATE VIEW
CREATE TABLE
ALTER SESSION
CREATE CLUSTER
CREATE SESSION
CREATE SYNONYM
CREATE SEQUENCE
CREATE DATABASE LINK
这样一些权限了。你有兴趣可以把role=‘CONNECT’换成RESOURCE,看看resource具有哪些系统权限。
是不是oracle版本不一样,connect所赋予的权限也不一样?我用的10.2.0.1
我查出只有在resource下才有建表的权限SQL> select * from role_sys_privs where role='CONNECT';ROLE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
CONNECT CREATE SESSION NOSQL> select * from role_sys_privs where role='RESOURCE';ROLE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
RESOURCE CREATE SEQUENCE NO
RESOURCE CREATE TRIGGER NO
RESOURCE CREATE CLUSTER NO
RESOURCE CREATE PROCEDURE NO
RESOURCE CREATE TYPE NO
RESOURCE CREATE OPERATOR NO
RESOURCE CREATE TABLE NO
RESOURCE CREATE INDEXTYPE NO已选择8行。
ORACLE安全手册建议我们:
一般来说“Connection + Resource + OWNER”权限就足够了。
不要随便用“grant dba to user_name”。