db2授权表
⑴ db2中如何给一个用户对一个库的表的增删改查权限
db2 grant control on table tabname to user username
⑵ 在db2中如何赋给用户select所有表的权限啊跪求,在线等!
没有
没有
⑶ 在DB2中怎么revoke用户的create table权限
查询sys用户直接赋予用户icdpub的权限:
select * from dba_sys_privs t where t.grantee='ICDPUB';查询用户通过role赋权所得到的权内限:SELECT * FROM DBA_ROLE_PRIVS T WHERE T.grantee='ICDPUB'; 收回用户的权限:revoke create table from ic
~如果你认可我的回容答,请及时点击【采纳为满意回答】按钮
~~手机提问的朋友在客户端右上角评价点【满意】即可。
~你的采纳是我前进的动力
~~O(∩_∩)O,记得好评和采纳,互相帮助,谢谢。
⑷ 如何把一个用户下所有表的查询权限赋给另一用户
只要将用户下所有表的查询权限赋给用户2即可。但是,用户1下可能有很多表,如果一条一条地写grant语句很不现实,这里介绍一种便捷的方法:通过查询语句得到grant赋权限脚本,执行一下就可以了。
SQL> show user
USER 为"SYS"
SQL> create user tt
2 identified by tt;
用户已创建
SQL> grant create session to tt;
授权成功。
SQL> select 'grant select on '||owner||'.'||object_name|| ' to user1;'
2 from dba_objects
3 where object_type='TABLE' and wner='SCOTT';
'GRANTSELECTON'||OWNER||'.'||OBJECT_NAME||'TOUSER1;'
------------------------------------------------------------------------------
grant select on SCOTT.BONUS to user1;
grant select on SCOTT.CC to user1;
grant select on SCOTT.CC1 to user1;
grant select on SCOTT.DEPT to user1;
grant select on SCOTT.EMP to user1;
grant select on SCOTT.SALGRADE to user1;
grant select on SCOTT.T1 to user1;
grant select on SCOTT.T2 to user1;
grant select on SCOTT.TT to user1;
已选择9行。
复制上面的查询结果执行一下就可以了。如果查询结果太多的话,可以将这样做:
set pages 999;
set heading off;
spool run_grant.sql
select 'grant select on '||owner||'.'||object_name|| ' to user1;'
from dba_objects
where object_type='TABLE' and wner='SCOTT';
spool off;
@run_grant
这是一种很方便高效的方法,可以使工作事半功倍。
把所有表的查询权限赋给另一个用户
grant select any table to QUERY;
⑸ 请问,关于DB2用户权限查询问题
DB2的权限管理分成很多层,控制到DB、表空间、模式等等,用户本身会有对应的角色。按照你的描述,DB2 LUW版本的话查看SYSCAT.TABAUTH,可以得到你想要的结果。
⑹ DB2 授权调试问题
DB2-创建用户和组,数据库
1、增加一个操作系统用户
groupadd test---添加用户组test
useradd -m -g test -d /home/test test---添加用户test
passwd test---修改test的密码
2、赋予回用户DB2权限
db2 connect to sample---连接到sample数据库答
db2 grant connect on database to user test---赋予test用户sample数据库的connect权限
db2 connect reset--关闭连接
⑺ db2不同表空间 赋权语句
在DB2 中将抄在表空间中授权给用户的语句是
GRANTUSEOFTABLESPACEtbspace_nameTOapp_developer1
通过查询SYSCAT.TBSPACEAUTH视图可以看到用户app_developer1被成功授权
⑻ 如何给新建的DB2用户授权
GRANT SELECT/...... ON TABLE tableName TO USER userName;
⑼ 用SQL如何给DB2表加锁和解锁
在DB2的命令行中输入:
update monitor switches using lock on table on
然后打开另一个DB2命令窗口执行我的那个被吊死的语句。
然后在第一个DB2命令窗口执行: [@more@]get snapshot for locks on Database_Name(你的数据库的名字)> locks.TXT
然后,可以看到第一个DB2的窗口有一个信息输出,把这些信息输出到TXT中,大致如下:
应用程序句柄 = 36
应用程序标识 = AC100C47.IC05.00F6C6095828
序号 = 0246
应用程序名 = java.exe
CONNECT 授权标识 = DB2ADMIN
应用程序状态 = UOW 正在等待
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 0
总计等待时间(毫秒) = 0
应用程序句柄 = 43
应用程序标识 = *LOCAL.DB2.060512054331
序号 = 2273
应用程序名 = java.exe
CONNECT 授权标识 = DB2ADMIN
应用程序状态 = 联合请求暂挂
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 6
总计等待时间(毫秒) = 0
锁定列表
锁定名称 = 0x031F9052000000000000000055
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 255
挂起计数 = 0
锁定对象名 = 0
对象类型 = 内部
方式 = S
锁定名称 = 0x26800000000000000000000044
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 0
对象类型 = 内部
方式 = S
锁定名称 = 0x020006000F1700000000000052
锁定属性 = 0x00000000
发行版标志 = 0x00000001
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 5903
对象类型 = 行
表空间名 = USERSPACE1
表模式 = DB2ADMIN
表名 = C_USER
方式 = NS
锁定名称 = 0x01000000010000000500BC0056
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 0
对象类型 = 内部变化锁定
方式 = S
锁定名称 = 0x535953534E333030FD965C0641
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 0
对象类型 = 内部方案锁定
方式 = S
锁定名称 = 0x02000600000000000000000054
锁定属性 = 0x00000000
发行版标志 = 0x00000001
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 6
对象类型 = 表
表空间名 = USERSPACE1
表模式 = DB2ADMIN
表名 = C_USER
方式 = IS
应用程序句柄 = 557
应用程序标识 = *LOCAL.DB2.060512053913
序号 = 1254
应用程序名 = java.exe
CONNECT 授权标识 = DB2ADMIN
应用程序状态 = 联合请求暂挂
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 6
总计等待时间(毫秒) = 0
锁定列表
锁定名称 = 0x031F9052000000000000000055
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 255
挂起计数 = 0
锁定对象名 = 0
对象类型 = 内部
方式 = S
锁定名称 = 0x26800000000000000000000044
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 0
对象类型 = 内部
方式 = S
锁定名称 = 0x02000600071D00000000000052
锁定属性 = 0x00000000
发行版标志 = 0x00000001
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 7431
对象类型 = 行
表空间名 = USERSPACE1
表模式 = DB2ADMIN
表名 = C_USER
方式 = NS
锁定名称 = 0x01000000010000000500BC0056
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 0
对象类型 = 内部变化锁定
方式 = S
锁定名称 = 0x535953534E333030FD965C0641
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 0
对象类型 = 内部方案锁定
方式 = S
锁定名称 = 0x02000600000000000000000054
锁定属性 = 0x00000000
发行版标志 = 0x00000001
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 6
对象类型 = 表
表空间名 = USERSPACE1
表模式 = DB2ADMIN
表名 = C_USER
方式 = IS
其中应用程序句柄43和557的状态都是死锁了,猜测是这2个应用争用DB2的表,造成死锁,根据日志提示,在DB2的命令窗口输入:
force application (43)
force application (557)
提示这个操作是异步的,我执行list applicaions,结果进程中还有那2个进程,那2个进程可能是在执行比较大的操作,需要耐心等待,如何还不行,则使用下面的命令来强制所有的应用都停止,然后重启DB2:
force application all
terminate
db2stop force
db2start
如果DB2在Window上,则可以使用“控制中心”->实例->右键“应用程序”,可以看到当前的锁定情况,并且可以强行关闭某个进程,也可以显示“锁定链”。
⑽ 如何给db2数据库添加新的用户和权限
1、GRANT CONNECT ON DATABASE TO USER GUEST;
GRANT SELECT ON TABLE DENT TO USER GUEST;
需要在系统上先建立一个用户。
2.DB2依赖操作系统的安全性,自身没有用户,回直接看操作系统中有答哪些用户就行
3.DB2数据库没有这样的功能,ORACLE中的logminer能查到用户执行的DDL和DML
但是也查不到哪些用户查询过哪些表