db2 用户权限

    DB2数据库权限分为实例级权限(SYSADM、SYSCTRL、SYSMAINT、SYSMON)和DB2数据库级权限(DBAMD、LOAD)。DB2中用户所拥有的权限主要考虑三个方面:实例级、数据库级、数据库操作级别,查看命令是db2 get authorizations。

DB2授权可分为实例级权限授权和数据库级别授权,实例级别权限必须由拥有SYSADM权限的用户通过update
cfg来授予用户组,数据库对象级别权限由DBAMD权限用户通过grant命令显示的授予用户或用户组。

一、DB2权限简介

DB2数据库权限分为实例权限级别(SYSADM、SYSCTRL、SYSMAINT、SYSMON)和DB2数据库权限级别(DBAMD、LOAD)。SYSCTRL、SYSMAINT、SYSMON权限级别的用户不能访问数据,DBAMD、LOAD权限级别的用户可以访问数据。

实例级别权限(只能在用户组级别上进行分配):

SYSADM ----系统管理权限(UNIX系统中,SYSADM用户组默认地设置为实例拥有者所在的主用户组,因此,该组中的任何用户都拥有SYSADM权限)

SYSCTL---- 系统控制权限

SYSMAINT---- 系统维护权限

数据库级别:

dbadm---- 数据库管理权限(不能执行诸如删除数据库、创建和删除表空间、备份或者恢复数据库等等维护性和管理任务)

load---- 对表进行load操作的权限

1、 DB2数据库权限:

CONNECT-允许用户连接数据库

BINDADD-允许用户在数据库中创建新的包

CREATETAB-允许用户在数据库中创建新的表

CREATE_NOT_FENCED-允许用户注册定义为 NOT FENCED 的用户定义函数(UDF)或存储过程

IMPLICITSCHEMA -允许用户在尚不存在的模式中创建对象(它自动地创建模式)*

QUIESCE_CONNECT-允许用户连接处于 quiesced 状态的数据库

CREATE_EXTERNAL_ROUTINE-允许用户注册外部例程(用 C 和 Java 等外部语言编写的例程)

2、表空间特权:

USE -允许用户在指定的表空间中创建表

3、模式特权:

CREATEIN-允许用户在模式中创建对象

ALTERIN-允许用户在模式中修改对象

DROPIN-允许用户从模式中删除对象

4、表/视图特权:

CONTROL-授予用户在表和视图上的所有特权,以及将这些特权(除了 CONTROL)授予别人

ALTER -允许用户在表中添加列、在表和它的列上添加或修改注释、添加主键或惟一约束以及创建或删除表检查约束

DELETE-允许用户从表或视图中删除行

INDEX -允许用户在表上创建索引

INSERT-允许用户在表或视图中插入数据

REFERENCES-允许用户创建和删除外键,这需要指定关系中的父表

SELECT-允许用户从表或视图中检索行、在表上创建视图以及运行EXPORT 实用程序

UPDATE-允许用户修改表、视图或者表或视图中某些列中的数据;用户可以只在特定列上具有这种特权

5、索引特权:

CONTROL-允许用户删除索引

6、包特权:

CONTROL-允许用户重新绑定、删除或执行包,以及将这些特权(除了 CONTROL)授予别人

BIND -允许用户重新绑定现有的包

EXECUTE-允许用户执行包

7、例程特权:

EXECUTE允许用户调用例程,从例程创建函数(只应用于函数),以及在任何 DDL 语句(比如 CREATE
VIEW、CREATE TRIGGER 或定义约束时)中引用例程

9、 序列特权:

USAGE -允许用户对序列使用 NEXTVAL 和PREVVAL 表达式

ALTER -允许用户使用 ALTER SEQUENCE 语句修改序列属性

特权的信息存储在七个系统编目视图中:

*SYSCAT.DBAUTH - 数据库特权

*SYSCAT.COLAUTH - 表和视图列特权

*SYSCAT.INDEXAUTH - 索引特权

*SYSCAT.PACKAGEAUTH - 包特权

*SYSCAT.SCHEMAAUTH - 模式特权

*SYSCAT.TABAUTH - 表和视图特权

*SYSCAT.TBSPACEAUTH - 表空间特权

查看当前连接用户权限:db2get authorizations

“直接” 权限意味着此权限是明确授予此用户的。“间接”权限意味着此用户属于具有此权限的组。

权限总结:DB2中用户所拥有的权限主要考虑三个方面:实例级、数据库级、数据库对象级别,查看方法是db2get
authorizations,具体表的授权信息存放在syscat.tabauth中。

二、授权操作

DB2数据库授权由特权组和高级数据库管理程序(实例级)维护和实用操作组成。在DB2可用的5 种权限中,SYSADM、SYSCTRL和
SYSMAINT 是实例级权限。这意味着它们的范围包含实例级命令以及针对这个实例中的所有数据库的命令。这些权限只能分配给组;可以通过
DBM CFG 文件分配这些权限。

1、获得 SYSADM

具有 SYSADM 权限的用户可以发出作用于 DB2 实例、实例内的任何数据库以及这些数据库内的任何对象的任何 DB2
命令。他们也能够访问数据库内的数据,授予或撤消特权和权限。SYSADM 用户是唯一被允许更新数据库管理器配置(Database
Manager Configuration(DBM CFG))文件的用户。

SYSADM 权限在 DBM CFG 中通过 SYSADM_GROUP 参数控制。当创建实例时,在 Windows 上这个参数被设置为
Administrator(尽管当您发出命令 db2 get dbm cfg 时显示为空)。在 UNIX
上,该参数被设置为创建实例的用户的主组。由于 SYSADM 用户是唯一被允许更新
DBMCFG 的用户,所以,他们也是唯一能够将任何 SYS*
权限授予其它组的用户。

以下示例演示如何向 db2grp1 组授予 SYSADM 权限:

db2 update dbm cfg
usingSYSADM_GROUP db2grp1

2、 获得 SYSCTRL

具有 SYSCTRL 权限的用户可以执行实例内的所有管理和维护命令。然而,与 SYSADM
用户不同,他们不能访问数据库内的任何数据,除非他们被授予了这样做所需要的特权。SYSCTRL 用户可以对实例内的任何数据库执行

拥有 SYSADM 权限的用户可以使用以下命令将 SYSCTRL 分配给一个组:

db2 update dbm cfg
usingSYSCTRL_GROUP group name

3、 获得 SYSMAINT

具有 SYSMAINT 权限的用户可以发出的命令是 SYSCTRL 权限被允许的命令的子集,
就是被看作与“维护”有关的一些任务。

请注意,具有 SYSMAINT
的用户不能创建或删除数据库或表空间(tablespace)。他们也不能访问数据库内的任何数据,除非他们被授予了这样做所需要的特权。

拥有 SYSADM 权限的用户可以使用以下命令将 SYSMAINT 分配给一个组:

db2 update dbm cfg
usingSYSMAINT_GROUP group name。

4、Grant

DB2数据库授权是通过GRANT命令实现的,DB2数据库授权后,用户才可以对DB2进行相应的操作。针对特定数据库的DBADM
和LOAD 权限可以分配给用户或用户组。可以使用GRANT命令显式地分配这些权限。

语法:

>>-GRANT--authorization-specification--------------------------->

      
.-,----------------------.                      
   

      
V                       
|                      
   

>--TO----+-authorization-name-+-+--+-------------------+-------><</em>

+-ROLE--role-name----+   
‘-WITH GRANT
OPTION-‘

‘-PUBLIC-------------‘

简单示例(需要先连接数据库):

--授权数据库管理权限给用户

db2grant dbadm on database to user
db2admin

--授权数据库管理权限给用户组

db2 grant dbadm on database to group db2grp1

--授权查询:

db2grant select on table tableName  to user
db2admin

--全部授权

DB2 GRANTALL ON TABLE OWK."FAVMENU" TO USER sckdev

时间: 2024-09-30 12:55:24

db2 用户权限的相关文章

db2用户权限

前言:     DB2数据库权限分为实例级权限(SYSADM.SYSCTRL.SYSMAINT.SYSMON)和DB2数据库级权限(DBAMD.LOAD).DB2中用户所拥有的权限主要考虑三个方面:实例级.数据库级.数据库操作级别,查看命令是db2 get authorizations.      DB2授权可分为实例级权限授权和数据库级别授权,实例级别权限必须由拥有SYSADM权限的用户通过update cfg来授予用户组,数据库对象级别权限由DBAMD权限用户通过grant命令显示的授予用户

创建MySQL用户及赋予用户权限

创建MySQL用户及赋予用户权限 1.通过help查看grant命令帮助 -- CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass'; GRANT ALL ON db1.* TO 'jeffrey'@'localhost'; GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost'; GRANT USAGE ON *.* TO 'jeffrey'@'localhost' WITH MAX_

12、创建mysql用户及赋予用户权限

1.通过help命令查看grant的用法: CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password'; GRANT ALL ON db1.* TO 'jeffrey'@'localhost'; GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost'; GRANT USAGE ON *.* TO 'jeffrey'@'localhost' WITH MAX_QUERIES_PER_HOUR

Oracle 表空间和用户权限管理

一. 表空间 Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构指的是构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念以及它们之间的关系. 表空间是数据库逻辑结构的一个重要组件. 表空间可以存放各种应用对象,如表.索引等. 而每一个表空间由一个或多个数据文件组成. 1. 表空间的分类 表空间可分为3类: 永久性表空间:一般保存表.上天.过程和索引等数据.system.sysaux.users.example表空间是默认安装的. 临时性表空间:只用于保存

Asp.Net Core 项目实战之权限管理系统(7) 组织机构、角色、用户权限

0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计 3 Asp.Net Core 项目实战之权限管理系统(3) 通过EntityFramework Core使用PostgreSQL 4 Asp.Net Core 项目实战之权限管理系统(4) 依赖注入.仓储.服务的多项目分层实现 5 Asp.Net Core 项目实

influxdb用户权限篇

设置TS的authorized,提高安全性,针对指定用户拥有权限才能访问数据库的数据,TS默认用户分为普通用户和管理员用户,权限分为read,write,all privileges三种权限 添加用户可以通过终端或者WEB方式2种方式: 开启一个用户权限的过程: 1.在安装好数据库后,通过默认方式登陆数据库:[[email protected] ~]# influx 2.添加用户 CREATE USER "influxdb" WITH PASSWORD 'root123' WITH A

centos用户权限管理

进程是以其发起者的身份运行的,它对文件的访问权限,取决于此进程的用户的权限.在linux操作系统启动的过程中,为了能够让后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,而这类用户从不需要登录系统,仅让其他进程以他的身份运行,从而仅能获取普通权限的用户.为此这部分用户称系统用户.同时用户与组密不可分.进程的运行是以它的属主(又称,发起者)来访问的.它能访问资源的权限取决于发起者对某个资源的访问权限.下面是从用户和授权两个角度来讲解用户授权管理. 用户管理 用户按类别分管理员

实现业务系统中的用户权限管理--实现篇

在设计篇中,我们已经为大家阐述了有关权限管理系统的数据库设计,在本篇中,我们将重点放在其实现代码部分.为了让你能够更直接更有效的看到全部动作的代码,我们使用"动作分解列表"的方式来陈述每个动作以及相关资源. 实现权限管理功能的动作 动作分解 动作名 相关表名 操作集类型 (S,U,I,D,SQL) 表单 模组 字符资源 是否分页? 返回提示? 权限检测 权限初始化安装 setup 无 无 无 setup setupok 否 否 否 显示添加管理组界面 addnewgroup 无 无 a

vcneter5.5添加域用户权限

安装完vCenter5.5之后,发现不能添加域用户来管理vSphere,查了文档,原来是现在安装vCenter Single Sign-on的时候创建了一个默认域:vsphere.local. 添加用户时,没有域用户可以选择添加,如图: 要添加域用户权限,必须添加标识源,添加标识源的方法如下: 使用[email protected]通过web client登陆vCenter: https://192.168.2.202:9443/vsphere-client/ 配置SSO用户认证标识源 登录后,