用户、配置文件和角色之间有什么区别
what is the difference between user, profile and roles
SQLPlus 中的角色、个人资料和用户有什么区别?
Oracle 的概念指南是此类问题的一个很好的起点。
查看示例 user accounts、配置文件和角色。
简而言之,配置文件是给定用户的限制列表。有些会影响密码(livetime、locktime 等),有些会影响用户可以使用的资源(max sessions、max io 等)。不幸的是,配置文件只能由管理员看到。
现在的用户:出于某些原因,用户和模式在 Oracle 中是同一回事(至少这是我的解释)。因此,如果您想创建一个 table、一个函数或任何东西,它都归用户所有。
您可以将一个用户的 table 的访问权限授予另一个用户。在较大的系统中,这很快就会变得非常混乱,因此人们通常授予对角色的访问权限,然后将此角色授予相关用户。将角色视为一袋特权。
N.B。从技术上讲,用户和角色生活在同一个系统 table SYS.USER$
中,用户有 type#=1
,角色 type#=0
。因此,您可以将角色视为一种被阉割的用户,不允许拥有任何 table 或其他对象,但他们的人生目标是拥有特权并将其传达给真实用户。
编辑:
数据字典视图中有一个可用配置文件列表 DBA_PROFILES
。数据库中的每个用户都分配给其中一个配置文件。我使用来自 oracle vagrant 的示例数据库,所有用户都有配置文件 DEFAULT
:
SELECT username, profile FROM DBA_USERS;
SYS DEFAULT
SYSTEM DEFAULT
...
一个用户可以被授予零个或多个角色。更糟糕的是,一个角色可以授予另一个角色(尽管有些人不鼓励嵌套角色)。所以每个用户都可以拥有一整棵角色树。通常,它只是一个不到十几个角色的列表。
以下是所有可用角色的列表:
SELECT * FROM DBA_ROLES;
CONNECT
RESOURCE
DBA
...
这里是一个列表,其中列出了哪个用户被授予了什么角色:
SELECT * FROM DBA_ROLE_PRIVS;
SYS DBA
SYS AUDIT_ADMIN
SYS CONNECT
SYSTEM DBA
...
所以个人资料和角色是完全不同的东西。配置文件规定了用户的密码寿命和 his/her 与数据库的连接。角色规定用户拥有哪些特权(访问 tables 或系统特权)。
SQLPlus 中的角色、个人资料和用户有什么区别?
Oracle 的概念指南是此类问题的一个很好的起点。
查看示例 user accounts、配置文件和角色。
简而言之,配置文件是给定用户的限制列表。有些会影响密码(livetime、locktime 等),有些会影响用户可以使用的资源(max sessions、max io 等)。不幸的是,配置文件只能由管理员看到。
现在的用户:出于某些原因,用户和模式在 Oracle 中是同一回事(至少这是我的解释)。因此,如果您想创建一个 table、一个函数或任何东西,它都归用户所有。
您可以将一个用户的 table 的访问权限授予另一个用户。在较大的系统中,这很快就会变得非常混乱,因此人们通常授予对角色的访问权限,然后将此角色授予相关用户。将角色视为一袋特权。
N.B。从技术上讲,用户和角色生活在同一个系统 table SYS.USER$
中,用户有 type#=1
,角色 type#=0
。因此,您可以将角色视为一种被阉割的用户,不允许拥有任何 table 或其他对象,但他们的人生目标是拥有特权并将其传达给真实用户。
编辑:
数据字典视图中有一个可用配置文件列表 DBA_PROFILES
。数据库中的每个用户都分配给其中一个配置文件。我使用来自 oracle vagrant 的示例数据库,所有用户都有配置文件 DEFAULT
:
SELECT username, profile FROM DBA_USERS;
SYS DEFAULT
SYSTEM DEFAULT
...
一个用户可以被授予零个或多个角色。更糟糕的是,一个角色可以授予另一个角色(尽管有些人不鼓励嵌套角色)。所以每个用户都可以拥有一整棵角色树。通常,它只是一个不到十几个角色的列表。
以下是所有可用角色的列表:
SELECT * FROM DBA_ROLES;
CONNECT
RESOURCE
DBA
...
这里是一个列表,其中列出了哪个用户被授予了什么角色:
SELECT * FROM DBA_ROLE_PRIVS;
SYS DBA
SYS AUDIT_ADMIN
SYS CONNECT
SYSTEM DBA
...
所以个人资料和角色是完全不同的东西。配置文件规定了用户的密码寿命和 his/her 与数据库的连接。角色规定用户拥有哪些特权(访问 tables 或系统特权)。