数据库orcl
创建用户jads,并且分配sysdba权限
用户jads以sysdba权限登录orcl,并且创建表ou_users和插入相关数据问题来了:
当用户jads以sysdba权限访问ou_users表时,比方说select * from ou_users,数据是可以访问的
但是用户jads以normal权限访问时,数据就不可以访问了,报错 表或试图不存在怎样修改权限使用户jads在normal情况下也能访问到数据呢ps:因为用户jads以sysdba权限登录数据库时,创建的表和插入的数据量比较大,所以再以normal权限重新创建表和插入数据比较麻烦,所以寻求其他解决方案。
小弟对oracle不是很熟悉
创建用户jads,并且分配sysdba权限
用户jads以sysdba权限登录orcl,并且创建表ou_users和插入相关数据问题来了:
当用户jads以sysdba权限访问ou_users表时,比方说select * from ou_users,数据是可以访问的
但是用户jads以normal权限访问时,数据就不可以访问了,报错 表或试图不存在怎样修改权限使用户jads在normal情况下也能访问到数据呢ps:因为用户jads以sysdba权限登录数据库时,创建的表和插入的数据量比较大,所以再以normal权限重新创建表和插入数据比较麻烦,所以寻求其他解决方案。
小弟对oracle不是很熟悉
但是用户jads以normal权限访问时,数据就不可以访问了,报错 表或试图不存在
你是几个用户
贴出你的具体操作
jads是我创建的用户,还有些oracle自带的用户这个跟上述问题有关联么?
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as SYS--创建用户
SQL> create user jads identified by jads;
User created
--授予权限
SQL> grant connect,resource,dba,sysdba to jads;
Grant succeeded
--以sysdba方式登录
SQL> connect jads/jads@orcl as sysdba
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as SYS
--虽然以jads用户,但以sysdba角色登录,则用户实际上是SYS
SQL> show user
User is "SYS"
SQL> create table ou_users(id number,name varchar2(30));
Table created
--所以创建的表的OWNER是SYS
SQL> select t.table_name,t.owner,t.tablespace_name from dba_tables t where t.table_name='OU_USERS';
TABLE_NAME OWNER TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------
OU_USERS SYS SYSTEM
SQL> connect jads/jads@orcl as normal
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as jads
--表的OWNER为SYS,而非jads所以jads不能直接访问
SQL> select * from ou_uses;
select * from ou_uses
ORA-00942: 表或视图不存在--如果有dba权限,可以<用户名.表名>方式访问
SQL> select * from sys.ou_users;
ID NAME
---------- ------------------------------
SQL>
jads使用as sysdba登录,然后在jads下创建表,即创建表时加上jads.
create table jads.ou_users(id number,name varchar2(30));这样jads使用as normal登录后,可以直接访问表,没有问题的
select * from ou_users;
又涨见识了