oracle数据库user用户的权限配置

       1.使用plsql创建user对象时,出现 insufficient privileges错误,如图所示

                       解决办法:将数据库连接和资源都赋给创建的user对象以及session权限

转载大神的解析:

用户至少需要会话的权利,否则连接也不成功;

用户在会话的权利上,应该有其他操作的权利;解决方法:  www.2cto.com  

1grant connect, resource to aaaa;

2grant create session to aaaa; 

Oracle的安全 第一:用户管理*******************************************

用户至少需要会话的权利,否则连接也不成功;用户在会话的权利上,应该有其他操作的权利;Oracle的用户和口令不区分大小写,真是让人大跌眼镜;Oralce中,所有用户必须明确被授权,才可以操作;
 SQL Server中,创建的用户自动就拥有了一些权限;Oracle不依赖操作系统;SQL Server依赖Windows;

MicroSoft假定大多数用户都是合法用户,采取乐观态度;Oracle首先假定用户都是不安全的,采取悲观态度;Oracle中的用户是互相隔离的,称为用户模式;
 内置用户:  www.2cto.com   sys,网络管理员,最高权限;     当你试图输入了用户名:sys          密码:通用     之后,你发现连接不上;     而输入 用户名:system         密码:通用     或者    用户名:scott          密码:tiger
      的时候都可以连接,所以你认为     sys的权限没有system高;     其实正是因为sys的权限高,所以你必须以     dba的身份来登陆:sys/通用 as sysdba//可以使用数据字典user_users来查看当前用户管理的用户:  select * from user_users; 而dba_users可以查看dba管理的用户; system,只管理本机上的数据库; 而all_users查看所有用户,只能由dba来查看; ******创建用户:  www.2cto.com   create user 用户名 identified by 口令 [externally] [default tablesapce 表空间名] [temporary tablespace 临时表空间名] [quota 整数 K|M|unlimited on 表空间名]//注意:创建用户必须有dba的权限;
 ******查询用户: 其实就是对表user_users/dba_users/all_users进行查询, 只不过这里不把他们叫表,叫数据字典;而且数据字典是系统 维护的;

*******修改用户: alter user.....//后面和创建一样;Oracle中一个实例就是一个数据库,这个数据库相当与SQL Server的全部数据库;Oracle的一个数据库被分为很多个表空间,每个表空间相当于SQL Server中的一个数据库;   实例演示:create user student_useridentified by studentdefault tablespace userstemporary tablespace tempquota 5m on usersquota 3m on temp
 /其中,users,temp都是内置的表空间,student_user在users里有5m空间,在temp里有3m;新创建的用户是没有权利的:SQL> conn student_user/student;ERROR:  www.2cto.com  ORA-01045: user STUDENT_USER lacks CREATE SESSION privilege; logon denied警告: 您不再连接到 ORACLE。 

*****限制用户 锁定:alter user 用户名 account lock;  效果:  SQL> alter user student_user account lock;  用户已更改。  SQL> conn student_user/student;  ERROR:  ORA-28000: the account is locked  警告: 您不再连接到 ORACLE。 解锁:alter user 用户名 account unlock; 口令无效:alter 用户名 password expire; 当用户创建了很多表,  如果直接删除用户,它下面的表都将被删除,所以我们可以  只使得它的口令无效;
 //可见,表是用户的手下,用户没了,用户创立的表,占用的空间都就没了;

//所以,一般情况下,我们不要删除用户;****删除用户:  www.2cto.com   drop user 用户名[cascade] //cascade是强制删除,即使有别人正在用这个用户的表;

//数据库管理语句是自动结束事务的,没有rollback的机会;

 第二:权限管理***********************************************

授权:grant [系统特权名] [角色] [on 被授权操作表名] to [用户名列表] [public][with admin option] 如果是dcl语句,就不用on 被授权操作表名 grant all on student to public:把对student的所有权限授予所有用户; 数据字典:user_sys_privs select * from user_sys_privs权限收回:  www.2cto.com   revoke 权限列表 on 表 from 用户; SQL> revoke create table from iam; 撤销成功。
 撤消只是撤消本次授权的权限,所以如果某个用户原来就有某个权利,而你又给它授了同样的一个权利,然后你收回这个权限的时候,它原来就具有的这个权利还是有的;

第三:角色管理*****************************************

因为一个用户可能需要某些权限的集合,当我们得到一新的用户的时候,我们需要给一个用户依次授权每个它需要的权限;角色正是一个权限的集合,用户可以直接被授予这个角色,用户自然就拥有了它的角色所拥有的权利;
 创建角色: create role 角色名 [no identified|identified by 口令|externally] not identified:指出授予该角色的用户在使用时不需要检验; identified by:指出授予该角色的用户在使用set role命令时需要检验;   www.2cto.com  收回权限:revoke 权限 from 角色名;
 //角色就是权限的集合;实例:create role student_role/grant create table,create session,create view to student_role/grant student_role to scott/revoke create view from student_role/

角色的某个权限被收回的时候,被授予该角色的用户的该权限也相应被收回;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值