DB2权限管理

浏览:
字体:
发布时间:2013-12-13 14:31:27
来源:

记录的一部份权限管理相关的东东。

实例级权限: SYSADM 最高管理权限,通常供DBA使用 SYSCTRL 最高系统控制权限,有SYSMAINT 和SYSMON 的全部权限 SYSMAINT 次级系统 控制权限 SYSMON 最小的实例级管理权限
Unix/Linux下的查看命令: db2 get dbm cfg|grep "SYSADM" db2 get dbm cfg|grep "SYSCTRL" db2 get dbm cfg|grep "SYSMAINT" db2 get dbm cfg|grep "SYSMON" Windows下的查看命令: db2 get dbm cfg |find /I "SYSADM" db2 get dbm cfg |find /I "SYSCTRL" db2 get dbm cfg |find /I "SYSMAINT" db2 get dbm cfg |find /I " SYSMON "

如何授权:
DB2实例级的管理权限是和操作系统用户绑定的.所以需先创建操作系统用户.例子: 假设有用户: db2ctlusr 组: db2ctlgrp Linux: groupadd db2ctlgrp useradd -g db2ctlgrp -m -d /home/db2ctlusr db2ctlusr AIX: groupadd -g 996 db2ctlgrp mkuser id=1005 pgrp=db2ctlgrp home/home/db2ctlusr db2ctlusr
[root@O11g64 bin]# id db2ctlusruid=1053(db2ctlusr) gid=1021(db2ctlgrp) groups=1021(db2ctlgrp)
对比db2inst1:$ id db2inst1uid=110(db2inst1) gid=104(db2grp1) groups=1(staff),101(dasadm1) db2inst1 db2iadm1 DB2实例用户,用户组 db2fenc1 db2fadm1 受防护的用户,用户组. 运行自定义函数和过程 dasusr1 dasadm1 创建DB2管理服务器用户,用户组.
1. 参数中指定用户组: a. [root@O11g64 bin]# ./db2 get dbm cfg|grep "SYSCTRL"
SYSCTRL group name (SYSCTRL_GROUP) =

b. [db2inst1@O11g64 ~]$ db2 update dbm cfg using SYSCTRL_GROUP db2ctlgrpDB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completedsuccessfully.SQL1362W One or more of the parameters submitted for immediate modificationwere not changed dynamically. Client changes will not be effective until thenext time the application is started or the TERMINATE command has been issued.Server changes will not be effective until the next DB2START command.
c. db2stopd. db2start
e. [db2inst1@O11g64 ~]$ db2 get dbm cfg|grep "SYSCTRL" SYSCTRL group name (SYSCTRL_GROUP) = DB2CTLGRP
2.授与用户权限 db2 connect to xcldb
db2 "grant dbadm on database to user db2ctlusr"
db2 connect reset
3.收回权限
db2 connect to xcldbdb2 " revoke dbadm on database from user db2ctlusr "db2 connect reset

常见问题 : 报SQL5001N错误: 原因是需要SYSADM权限才能更改数据库管理器配置文件 使用下面命令查出组 [db2inst1@O11g64 ~]$ db2 get dbm cfg|grep "SYSADM" SYSADM group name (SYSADM_GROUP) = DB2IADM1 进入此组下的用户,再去执行更新权限 [root@O11g64 bin]# id db2inst1uid=1051(db2inst1) gid=1010(db2iadm1) groups=1010(db2iadm1),1020(db2fadm1)

表授权命令: -- public是全部用户 grant select on emp to group db2ctlgrp2
查询所有与权限相关的系统表:db2 " select substr(tabname,1,20) from syscat.tables where tabschema='SYSCAT' and tabname like '%AUTH' ";db2 " select * from DBAUTH"
角色create role myrolegrant select on table vacation to rle myrole grant role myrole to user myusr1,user myus2revoke role myrole from user myusr1;
-- 用户可以授予或撤消其它人角色,这个到和Oracle一个样grant role myrole to user myusr1 with admin option
还有更细粒度的访问控制,基于标签的访问控制(LBAC)
工作原理是在 行级,列级或行列同时设置 安全性标签,以便特定用户 是否可以访问一个表中的某些行或列.

这个好像没用上,不深究了.
MAIL:xcl_168@aliyun.comBlog:http://blog.csdn.net/xcl168

$ id db2inst1uid=110(db2inst1) gid=104(db2grp1) groups=1(staff),101(dasadm1)
$ db2 get dbm cfg SYSADM group name (SYSADM_GROUP) = DB2GRP1 SYSCTRL group name (SYSCTRL_GROUP) = SYSMAINT group name (SYSMAINT_GROUP) = SYSMON group name (SYSMON_GROUP) =
p104实例级权限: SYSADM 最高管理权限,通常供DBA使用 SYSCTRL 最高系统控制权限,有SYSMAINT 和SYSMON 的全部权限 SYSMAINT 次级系统 控制权限 SYSMON 最小的实例级管理权限
Unix/Linux下的查看命令: db2 get dbm cfg|grep "SYSADM" db2 get dbm cfg|grep "SYSCTRL" db2 get dbm cfg|grep "SYSMAINT" db2 get dbm cfg|grep "SYSMON" Windows下的查看命令: db2 get dbm cfg |find /I "SYSADM" db2 get dbm cfg |find /I "SYSCTRL" db2 get dbm cfg |find /I "SYSMAINT" db2 get dbm cfg |find /I " SYSMON "

如何授权:
DB2实例级的管理权限是和操作系统用户绑定的.所以需先创建操作系统用户.例子: 假设有用户: db2ctlusr 组: db2ctlgrp Linux: groupadd db2ctlgrp useradd -g db2ctlgrp -m -d /home/db2ctlusr db2ctlusr AIX: groupadd -g 996 db2ctlgrp mkuser id=1005 pgrp=db2ctlgrp home/home/db2ctlusr db2ctlusr

[root@O11g64 bin]# id db2ctlusruid=1053(db2ctlusr) gid=1021(db2ctlgrp) groups=1021(db2ctlgrp)

db2inst1 db2iadm1 DB2实例用户,用户组 db2fenc1 db2fadm1 受防护的用户,用户组. 运行自定义函数和过程 dasusr1 dasadm1 创建DB2管理服务器用户,用户组.
1. 参数中指定用户组: [root@O11g64 bin]# ./db2 get dbm cfg|grep "SYSCTRL"
SYSCTRL group name (SYSCTRL_GROUP) =

[db2inst1@O11g64 ~]$ db2 update dbm cfg using SYSCTRL_GROUP db2ctlgrpDB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completedsuccessfully.SQL1362W One or more of the parameters submitted for immediate modificationwere not changed dynamically. Client changes will not be effective until thenext time the application is started or the TERMINATE command has been issued.Server changes will not be effective until the next DB2START command.
db2stopdb2start
[db2inst1@O11g64 ~]$ db2 get dbm cfg|grep "SYSCTRL" SYSCTRL group name (SYSCTRL_GROUP) = DB2CTLGRP
2.授与用户权限 db2 connect to xcldb
db2 "grant dbadm on database to user db2ctlusr"
db2 connect reset

3.收回权限
db2 connect to xcldbdb2 " revoke dbadm on database from user db2ctlusr "db2 connect reset

常见问题 : 报SQL5001N错误: 原因是需要SYSADM权限才能更改数据库管理器配置文件 使用下面命令查出组 [db2inst1@O11g64 ~]$ db2 get dbm cfg|grep "SYSADM" SYSADM group name (SYSADM_GROUP) = DB2IADM1 进入此组下的用户,再去执行更新权限 [root@O11g64 bin]# id db2inst1uid=1051(db2inst1) gid=1010(db2iadm1) groups=1010(db2iadm1),1020(db2fadm1)

[root@O11g64 bin]# ./db2 update dbm cfg using SYSCTL_GROUP db2ctlgrpSQL0104N An unexpected token "SYSCTL_GROUP" was found following "USING".Expected tokens may include: "AGENTPRI". SQLSTATE=42601

其它的 -- public是全部用户 grant select on emp to group db2ctlgrp2
查询 -- 所有与权限相关的系统表db2 " select substr(tabname,1,20) from syscat.tables where tabschema='SYSCAT' and tabname like '%AUTH' ";db2 " select * from DBAUTH"

角色 create role myrolegrant select on table vacation to rle myrole grant role myrole to user myusr1,user myus2revoke role myrole from user myusr1;
-- 用户可以授予或撤消其它人角色,这个到和Oracle一个样grant role myrole to user myusr1 with admin option


还有更细粒度的访问控制,基于标签的访问控制(LBAC) 工作原理是在 行级,列级或行列同时设置 安全性标签,以便特定用户 是否可以访问一个表中的某些行或列.
这个好像没用上,不深究了.
>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2024 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();