数据库中角色
❶ 为什么要使用数据库角色
不同的角色权限不同,有管理员权限,有组管理权限,有用户权限。如果不定角色,每个用户都有相同的权限,那数据库就会无法管理。
1.Public:全体用户所共有的角色。如工厂中所有的工人都有进入工厂的权限。
2.db_owner: 此角色允许用户完全控制数据库。
3.db_securityadmin:此角色的用户允许管理所有的角色以及这些角色的成员。此角色也可以管理对角色权限的分配。备注:但不能向已有的角色中增加用户,但可以向创建的角色中添加用户。
4.db_accessadmin:此角色用于赋予用户在数据库中添加或删除用户的权利。通常和db_securtiyadmin角色的连用,使用户能有足够管理用户角色的权限。
❷ 数据库角色的简介
在数据库中,为便于对用户及权限进行管理,可以将一组具有相同权限的用户组织在一起,这一组具有相同权限的用户就称为角色(Role)。角色类似于Windows操作系统安全体系中的组的概念。在实际工作中,有大量的用户其权限是一样的,如果让数据库管理员在每次创建完用户后都对每个用户分别授权,则是一件非常麻烦的事情。但如果把具有相同权限的用户集中在角色中进行管理,则会方便很多。
为一个角色进行权限管理就相当于对该角色中的所有成员进行操作。可以为有相同权限的一类用户建立一个角色,然后为角色授予合适的权限。使用角色的好处是系统管理员只需对权限的种类进行划分,然后将不同的权限授予不同的角色,而不必关心有哪些具体的用户。而且当角色中的成员发生变化时,比如添加成员或删除成员,系统管理员都无需做任何关于权限的操作。
在SOL Server 2008中,角色分为预定义的系统角色和用户定义角色两种。同对,根据角色作用范围的不同,系统角色又分为服务器级角色(称为固定服务器角色)和数据库级角色(称为固定数据库角色)。用户定义的角色均是数据库级角色。

❸ 数据库,什么是角色什么是成员简述角色和成员的作用。
你可以这样想,角色相当于win的用户组,它是一个成员的集合,可以自定义角色,举例:数据库拥有者dbowner;成员就是win的用户,成员隶属于某个角色或多个角色,举例:dbo就是属于dbowner的一个成员。
❹ 数据库角色的注意
为了能初创数据库系统,新建立的数据库总是包含一个预定义的角色。 这个角色将总是超级用户, 并且缺省时(除非在运行 initdb 时更改过)他将和初始化该数据库集群的用户有相同的名称。 通常,这个角色叫postgres。 为了创建更多角色,你必须首先以这个初始用户角色联接。
每一个和数据库的连接都必须由一个角色身份进行, 这个角色决定在该连接上发出的命令的初始权限。 和特定数据库联接的角色名是由初始化联接请求的应用以相关的方式声明的, 比如,psql 程序使用-U命令行选项声明它代表的进行联接的角色。 许多应用以当前操作系统的用户名为缺省(这样的应用包括 createuser 和 psql)。 所以,在系统用户和数据库角色之间有某种命名关系会让我们工作方便很多。
一个客户端联接可以用来联接的数据库角色集合是由客户认证设置决定的, (因此,一个客户端并不局限于以它的操作系统用户同名的角色进行联接, 就象你登录系统的名称不一定要是你的真实姓名一样。) 因为角色的身份决定了一个已连接地客户端可用的权限, 所以在多用户环境里仔细配置这些内容是非常重要的。

❺ ORACLE数据库中的权限和角色
ORACLE数据库中的权限和角色
Oracle数据库是一种大型关系型的数据库,我们知道当使用一个数据库时,仅仅能够控制哪些人可以访问数据库,哪些人不能访问数据库是无法满足数据库访问控制的。DBA需要通过一种机制来限制用户可以做什么,不能做什么,这在Oracle中可以通过为用户设置权限来实现。权限就是用户可以执行某种操作的权利。而角色是为了方便DBA管理权限而引入的一个概念,它实际上是一个命名的权限集合。
1 权限
Oracle数据库有两种途径获得权限,它们分别为:
① DBA直接向用户授予权限。
② DBA将权限授予角色(一个命名的包含多个权限的集合),然后再将角色授予一个或多个用户。
使用角色能够更加方便和高效地对权限进行管理,所以DBA应该习惯于使用角色向用户进行授予权限,而不是直接向用户授予权限。
Oracle中的权限可以分为两类:
•系统权限
•对象权限
1.1 系统权限
系统权限是在数据库中执行某种操作,或者针对某一类的对象执行某种操作的权利。例如,在数据库中创建表空间的权利,或者在任何模式中创建表的权利,这些都属于系统权限。在Oracle9i中一共提供了60多种权限。
系统权限的权利很大,通常情况下:
① 只有DBA才应当拥有alter database系统权限,该权限允许用户对数据库物理结构和可用性进行修改。
② 应用程序开发者一般应该拥有Create Table、Create View和Create Type等系统权限,用于创建支持前端的数据库模式对象。
③ 普通用户一般只具有Create session系统权限(可以通过Connection角色获得),只有Create Session系统权限的用户才能连接到数据库
④ 只有具有Grant Any PRivilege系统权限用户,或者获取了具有With Admin Option选项的系统权限的用户,才能够成为其它用户授予权限。
1.2对象权限
对象权限是针对某个特定的模式对象执行操作的权利。只能针对模式对象来设置和管理对象权限。
对于模式对象:表、视图、序列、存储过程、存储函数、包都可以对象设置权限。不同类型模式对象具有不同的对象权限。比如,表、视图等对象具有查询(Select)、修改(Update)、删除(Delete)等对象权限,而存储过程、存储函数等对象则具有执行(Execute)等对象权限。
但是并不是所有的模式对象都可以设置对象权限。比如簇、索引、触发器以及数据库链接等模式就不具有对象权限。这些模式对象的访问控制是通过相应的.系统权限来实现的,比如,要对索引进行修改,必须拥有Alter Any Index系统权限。
用户自动拥有他的模式中所有对象的全部对象权限,他可以将这些对象权限授予其他的用户或角色。比如,Test1用户创建了一个表Table1,在没有授权的情况下,用户Test2不能查询、修改、删除这个表。如果Test1将ETP表的Select对象权限授予了Test2,则该用户就可以查询Table1表了。如果在为其它用户授予对象权限时用了With Grant Option选项,被授予权限的用户还可以将这个权限在授予其他用户。
2 角色
2.1角色的概念
角色就是多个相关权限的命名集合。通过角色来进行对用户授予权限,可以大大简化DBA的工作量。比如,处于统一部门中的30多个用户都需要访问数据库中的一系列表,DBA可以将这些表的中合适的对象权限授予一个角色,然后在把这个角色授予这些用户,这样进行操作要比为没有用户进行授权要便捷多了,而且要对这些用户的权限进行统一修改,只需要修改角色的权限即可。
2.2角色的优点
通过角色为用户授予权限,而不是直接向各个用户授权,具有以下优点:
•简化权限管理 DBA将用户群分类,然后为每一类用户创建角色,并将该角色授予这类用户所需要的权限,最后在将改角色授予该类中的各个用户。这样不仅简化了授权操作,而且当这类用户的权限需求发生改变时,只需要把角色的权限进行改动,而不必修改每一位用户的权限。
•动态权限管理 角色可以被禁用或激活。当角色被禁止使用时,拥有该角色的用户不再拥有授予改角色的权限了。这样就可以对多个用户的权限进行动态控制了。
•灵活的编程能力 角色是存储在数据字典中的,并且可以为角色设置口令。这样就能够在应用程序中对角色进行控制。比如禁用或者激活等操作。
下面以Oracle9i为例,给出具体的实现用户授权:
(1)设定各种角色,及其权限
CREATE ROLE checkerrole DENTIFIEDBYxm361001;
CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;
GRANT SELECT,UPDATE ON
account.paytable TO checkerrole;
GRANT CONNECT TO defaultrole;
(2)创建用户
CREATE USER xiaoli IDENTIFIEDBY xiaoli;
(3)授权
GRANT checkerrole TO xiaoli;
GRANT defaultrole TO xiaoli;
(4)设定用户缺省的角色
ALTER USER xiaoli DEFAULTROLE defaultrole;
(5)注册过程
CONNECT xiaoli/xiaoli@oracle
此时用户只有其缺省角色的权限。
(6)激活角色
SET ROLE checkerrole IDENTIFIEDBY xm361001;
----操作成功后,xiaoli拥有checkerrole的权限。
----这里的角色和口令是固定的,在应用系统中可以由应用管理人员自行设置则更为方便安全
;