官网地址:IBM Documentation
欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.
数据库级权限
最后更新 : 2021-08-30
数据库级访问权限影响对数据库的访问。只有单个用户,而不是角色,可以拥有数据库权限。
数据库级权限|--+-CONNECT--+-------------------------------------------------|+-RESOURCE-+ '-DBA------'
当你用 创建数据库 声明,您是所有者并自动接收所有数据库级权限。
在您作为DBA授予数据库权限之前,任何其他用户都无法访问数据库。
作为数据库所有者,您还可以自动接收数据库中所有表上的表级权限。有关表格级权限的更多信息,请参阅 表级权限 .
建议: 唯一使用者 信息系统 直接修改系统目录表。但是,除非在数据库服务器文档中注明,否则不要直接使用DML声明来插入、删除或更新系统目录表的行,因为修改这些表中的数据会破坏数据库的完整性。
当数据库级权限与表级权限冲突时,限制性更强的权限优先。
数据库访问级别,从最低到最高,连接,资源和DBA。使用相应的关键字授予一定程度的访问特权。
特权 | 效果 |
---|---|
CONNECT | 让您查询和修改数据 如果您拥有要修改的数据库对象,可以修改数据库架构。任何拥有连接权限的用户均可执行下列操作:
|
RESOURCE | 让您扩展数据库的结构,除了连接权限的功能之外,资源权限的持有者可以执行下列功能:
|
DBA | 拥有资源特权的所有能力,可以执行下列额外操作:
|
使用者 信息系统 拥有更改系统目录(包括 塞斯特尔斯 表
以下示例使用公共关键字向所有用户授予当前活动数据库的连接特权:
GRANT CONNECT TO PUBLIC;
不能向角色授予数据库级权限。只有个人用户或公众可以持有数据库级权限。
表级权限
最后更新 : 2021-08-30
使用创建表语句创建表时,您是表所有者,并自动接收所有表级权限。您不能将所有权转移给另一个用户,但可以向另一个用户或角色授予表级权限。(但见, 重命名表语句 会改变桌子的名称和所有权。)
具有数据库级DBA权限的用户自动接收该数据库中每个表上的所有表级权限。
Table-Level Privileges.-PRIVILEGES-.
|--+-ALL--+------------+--------------------------------------+-->| .-,----------------------------------------------------. | | V | | '---+-INSERT-------------------------------------------+-+-' +-DELETE-------------------------------------------+ | (1) | +-+-UPDATE-------------+--+------------------+-----+ | | (1) | | .-,------. | | | '-----+-SELECT-----+-' | V | | | | '-REFERENCES-' '-(----column-+--)-' | | (1) | '-----+-ALTER-+------------------------------------' +-INDEX-+ '-UNDER-' >--ON--+-----------+--+-table---+-------------------------------|'-owner-- . ' +-view----+ '-synonym-'
注:
- 芬尼 扩展的
元素 | 描述 | 限制 | 语法的 |
---|---|---|---|
column | 授予引用、选择或更新的列。默认范围为 桌子 , 看法 ,或 同义词 . | 一定是一个列 桌子 , 看法 ,或 同义词 | 标识符 |
owner | 使用者的姓名 桌子 , 看法 ,或 同义词 | 必须是有效的授权标识符 | 业主名称 |
synonym, table, view | 给予哪些特权的同义词、表或视图。 | 必须存在于当前数据库中 | 标识符 |
授予声明可以列出一个或多个以下关键字,以指定您授予相同用户或角色的表权限。
特权 | 效果 |
---|---|
INSERT | 让你插入行 |
DELETE | 删除行 |
SELECT | 让您访问选择语句中的任何列。您可以通过列表列列将所选权限限定为一个或多个列。 |
UPDATE | 让您访问更新语句中的任何列。您可以通过列表列列将更新权限限定为一个或多个列。 |
REFERENCES | 让您在列上定义引用约束。您必须拥有资源特权才能利用引用特权。(但是,您可以在更改表语句中添加一个引用约束,而不必在数据库中保留资源特权。您只需要标记删除的引用权限。您不需要删除权限就可以在表上放置CASCADIN删除。您可以通过列出列将引用权限限定为一个或多个列。 |
INDEX | 让您创建永久索引。您必须拥有使用索引权限的资源权限。(拥有连接权限的任何用户都可以在临时表上创建索引。) |
ALTER | 让您添加或删除列,修改列数据类型,添加或删除约束,将表的锁定方式从页面更改为行,或添加或删除表中相应的行数据类型。它还允许您启用或禁用索引、约束和触发器,如 设置数据库对象模式语句 . 您必须拥有资源特权才能使用更改特权。此外,对于受更改表语句影响的任何用户定义数据类型,您还需要使用权限。 |
UNDER | 让您在打字表下创建子表。 |
ALL | 提供上面列出的所有权限。特权关键字是可选的。 |
您可以通过指定特权所适用的列来缩小选择、更新或引用特权的范围。
指定关键字 使用者 如果您打算将授予语句应用于所有用户。
下面的一些简单示例说明了如何使用赠款语句授予表级权限。
下面的语句授予删除和选择表中任何列中值的特权 顾客 给用户 玛丽 和 约翰 .它还授予更新特权,但仅限于列 顾客_num , 姓 ,以及 名利 :
GRANT DELETE, SELECT, UPDATE (customer_num, fname, lname)ON customer TO mary, john;
若要授予所有授权用户与上述相同的权限,请使用关键字"公共",如下例所示:
GRANT DELETE, SELECT, UPDATE (customer_num, fname, lname)ON customer TO PUBLIC;
例如,假设一个用户 玛丽 创建了一个名为 表1 .默认情况下,只有用户 玛丽 可在 表1 表如果 玛丽 希望能够在 表1 表给指定用户 约翰 , 玛丽 必须输入下列拨款报表:
GRANT UNDER ON tab1 TO john;
在收到了桌上的特权之后 表1 ,用户 约翰 可在以下下创建一个或多个子表 表1 .