本人刚学oracle,有些问题请教,现在使用的是oracle11g
在使用oracle进行开发时,我想单独建立个用户名username,密码password,授予权限,使用这个用户名进行开发.现在有如下问题:
问题1.是使用users表空间,还是需要新建一个新的表空间好点?如果新建的好点,就建个mytablespace。用户名username的表空间是第一步的表空间问题2.开发和给用户使用时需要的权限是创建表,存储过程,视图,触发器,索引等等常用的操作。如何将这些权限赋予username? oracle数据库中connect,resource角色只有一些创建的权限,还需要一些执行方面的权限。如何解决这些问题?学习中遇到的一个问题:
以sys/admin@test_db as sysdba登录,给用户developer 赋予权限
grant connect,resource to developer
报错:ora-01917:???? 'DEVELOPER'???怎么回事
在使用oracle进行开发时,我想单独建立个用户名username,密码password,授予权限,使用这个用户名进行开发.现在有如下问题:
问题1.是使用users表空间,还是需要新建一个新的表空间好点?如果新建的好点,就建个mytablespace。用户名username的表空间是第一步的表空间问题2.开发和给用户使用时需要的权限是创建表,存储过程,视图,触发器,索引等等常用的操作。如何将这些权限赋予username? oracle数据库中connect,resource角色只有一些创建的权限,还需要一些执行方面的权限。如何解决这些问题?学习中遇到的一个问题:
以sys/admin@test_db as sysdba登录,给用户developer 赋予权限
grant connect,resource to developer
报错:ora-01917:???? 'DEVELOPER'???怎么回事
2。resource有执行这些存储过程,触发器的权限。
3。ora-01917是用户不存在。创建一个用户先。
GRANT
CREATE SESSION, CREATE ANY TABLE, CREATE ANY VIEW ,CREATE ANY INDEX, CREATE ANY PROCEDURE,
ALTER ANY TABLE, ALTER ANY PROCEDURE,
DROP ANY TABLE, DROP ANY VIEW, DROP ANY INDEX, DROP ANY PROCEDURE,
SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE
TO username;
在上面的
CREATE SESSION, CREATE ANY TABLE, CREATE ANY VIEW ,CREATE ANY INDEX, CREATE ANY PROCEDURE,
ALTER ANY TABLE, ALTER ANY PROCEDURE,
DROP ANY TABLE, DROP ANY VIEW, DROP ANY INDEX, DROP ANY PROCEDURE,
SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE
这些都是些待赋予的权限,但是这只是一部分,在哪个表里能找到所有的?
但是一个普通开发者要想赋予执行数据库中任意对象的权限,需要加你所说的带有any的权限。
好象楼主要建立一个超级开发者。conn / as sysdba;
select privilegE from dba_sys_privs where privilege like '%ANY%'
/
1,都可以的,不过个人觉得还是窗建一个新的表空间为好。2,对于开发用户来说,给予connect, resource角色足够了。都有创建表,存储过程,视图,触发器,索引等等常用权限。3,报错:ora-01917:???? 'DEVELOPER'???怎么回事】 是标识用户或者对象不存在,你得先创建一个对象才能授予权限啊!
还是和开发者相同的权限?因为用户使用时不需要创建,他们只要执行sql语句或存储过程就可以了
select privilegE from dba_sys_privs where privilege like '%ANY%'
OK
看你自己的权限的控制如何了,一般开发者的权限是没有隐患问题的。开发者对oracle系统模块没有操作权限,所以不会影响oracle的稳定。
revoke create any object to username;好了,收回用户创建任何对象的权限。