本人刚学oracle,有一问题不解,请高手解答:
问题是: 我以sys的身份进入数据库后创建了一个用户user1,随后又创建了一个角色,想通过角色给用户授权,可是操作完后(虽然不清楚应该给这个角色授什么权),尝试用user1登录,结果是登录不进去,提示错误是:“ 应用程序要求的数据库权限超出了您当前具有的权限。有关特定版本的详细信息, 请单击“帮助”。”
到底这个角色应该授什么样的权用户user1才能登录啊?急待中……
问题是: 我以sys的身份进入数据库后创建了一个用户user1,随后又创建了一个角色,想通过角色给用户授权,可是操作完后(虽然不清楚应该给这个角色授什么权),尝试用user1登录,结果是登录不进去,提示错误是:“ 应用程序要求的数据库权限超出了您当前具有的权限。有关特定版本的详细信息, 请单击“帮助”。”
到底这个角色应该授什么样的权用户user1才能登录啊?急待中……
create role tax_member;
为角色授权:
grant create table,connect ,create view to tax_member;
为用户授予角色:
grant tax_member to user1;
create role tax_member;
为角色授权:
grant create table,connect,resource,select any table to tax_member;
为用户授予角色:
grant tax_member to user1;
我是想通过角色给用户授权,如果直接给用户授权,直接grant DBA to user1;即可,那角色就失去作用了。
一般情况下,我们自己创建用户时也是用自己创建的角色,不是吗??高手回答
用户的权限越大,破坏的范围即越大。权限有很多种:create any table,create any view,create any synonym,
drop any table,...
create any procedure,create ant trigger,create function,
...
不过,有些权限在创建用户时是缺省分配给的。
---以下给新角色授权
grant CREATE SESSION to new_role;--建立会话,连接oracle的权限,此权限必须赋予,否则不能连接数据库
--以下为用户一般的权限:建表,建视图等
grant CREATE TRIGGER to new_role;
grant CREATE SEQUENCE to new_role;
grant CREATE TYPE to new_role;
grant CREATE PROCEDURE to new_role;
grant CREATE CLUSTER to new_role;
grant CREATE OPERATOR to new_role;
grant CREATE INDEXTYPE to new_role;
grant CREATE TABLE to new_role;
---建立新用户
create user new_user identified by pass;
---给新用户授权
grant new_role to new_user;
---此时新用户已经拥有新角色所有的权限