ORACLE数据库中的权限和角色
Oracle数据库是一种大型关系型的数据库,我们知道当使用一个数据库时,仅仅能够控制哪些人可以访问数据库,哪些人不能访问数据库是无法满足数据库访问控制的.DBA需要通过一种机制来限制用户可以做什么,不能做什么,这在Oracle中可以通过为用户设置权限来实现.权限就是用户可以执行某种操作的权利.而角色是为了方便DBA管理权限而引入的一个概念,它实际上是一个命名的权限集合.
①. 权限
Oracle数据库有两种途径获得权限,它们分别为:
① DBA直接向用户授予权限.
② DBA将权限授予角色(一个命名的包含多个权限的集合),然后再将角色授予一个或多个用户.
使用角色能够更加方便和高效地对权限进行管理,所以DBA应该习惯于使用角色向用户进行授予权限,而不是直接向用户授予权限.
Oracle中的权限可以分为两类:
系统权限
对象权限
①1 系统权限
系统权限的权利很大,通常情况下:
① 只有DBA才应当拥有alter database系统权限,该权限允许用户对数据库物理结构和可用性进行修改.
② 应用程序开发者一般应该拥有Create Table、Create View和Create Type等系统权限,用于创建支持前端的数据库模式对象.
③ 普通用户一般只具有Create session系统权限(可以通过Connection角色获得),只有Create Session系统权限的用户才能连接到数据库
④ 只有具有Grant Any PRivilege系统权限用户,或者获取了具有With Admin Option选项的系统权限的用户,才能够成为其它用户授予权限.
对象权限是针对某个特定的模式对象执行操作的权利.只能针对模式对象来设置和管理对象权限.
对于模式对象:表、视图、序列、存储过程、存储函数、包都可以对象设置权限.不同类型模式对象具有不同的对象权限.比如,表、视图等对象具有查询(Select)、修改(Update)、删除(Delete)等对象权限,而存储过程、存储函数等对象则具有执行(Execute)等对象权限.
但是并不是所有的模式对象都可以设置对象权限.比如簇、索引、触发器以及数据库链接等模式就不具有对象权限.这些模式对象的访问控制是通过相应的.系统权限来实现的,比如,要对索引进行修改,必须拥有Alter Any Index系统权限.
通过角色为用户授予权限,而不是直接向各个用户授权,具有以下优点:
简化权限管理 DBA将用户群分类,然后为每一类用户创建角色,并将该角色授予这类用户所需要的权限,最后在将改角色授予该类中的各个用户.这样不仅简化了授权操作,而且当这类用户的权限需求发生改变时,只需要把角色的权限进行改动,而不必修改每一位用户的权限.
动态权限管理 角色可以被禁用或激活.当角色被禁止使用时,拥有该角色的用户不再拥有授予改角色的权限了.这样就可以对多个用户的权限进行动态控制了.
灵活的编程能力 角色是存储在数据字典中的,并且可以为角色设置口令.这样就能够在应用程序中对角色进行控制.比如禁用或者激活等操作.
(1)设定各种角色,及其权限
CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;
GRANT SELECT,UPDATE ON
account.paytable TO checkerrole;
GRANT CONNECT TO defaultrole;
CREATE USER xiaoli IDENTIFIEDBY xiaoli;
GRANT checkerrole TO xiaoli;
GRANT defaultrole TO xiaoli;
ALTER USER xiaoli DEFAULTROLE defaultrole;
此时用户只有其缺省角色的权限.
----操作成功后,xiaoli拥有checkerrole的权限.
----这里的角色和口令是固定的,在应用系统中可以由应用管理人员自行设置则更为方便安全
;
①.、在PLSQL里,用sys(oracle系统用户)登陆,登陆的时候一定要选择SYSDBA.普通用户登陆选择normal;
create user 用户名 identified by 密码 default tablespace 表空间名 temporary tablespace 临时表空间名 ACCOUNT UNLOCK;\x0d\x0aGRANT CONNECT TO 用户名; 连接数据库\x0d\x0aGRANT RESOURCE TO 用户名; \x0d\x0agrant alter,delete,update,insert,select on 表名 to 用户名;
开始,运行输入cmd或是wind+r输入cmd
使用dba登录.
先创建一个用户:使用命令:create user 用户名 identified by 密码
给该用户解锁:使用命令:用户解锁 alter user 用户名 account unlock(不解锁无法登陆)
给该用户授权:grant create session to 用户名.这里是给的登录权限.如果想把dba的权限授权给该用户.
以上就是土嘎嘎小编为大家整理的oracle怎么添加权限相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!