银行

数据库的USERSPACE1表空间revoke 问题

将数据库的USERSPACE1给revoke
1.以实例用户db2inst1连接数据库: db2 connect to dbname

2.查看权限
db2 "select * from sysibm.systbspaceauth where TBSPACE='USERSPACE1'"|more


GRANTOR  GRANTEE   GRANTEETYPE TBSPACEID   USEAUTH    TBSPACE                                                                                                                  
SYSIBM     PUBLIC         G                    2                Y              USERSPACE1

db2 "revoke use of tablespace userspace1 from public"    --撤销         
---这样的话:db2inst1用户对这个表空间'USERSPACE1'也没有操作的权限了

想实现的需求是:除了db2inst1这个实例用户,其它用户都不能在这个表空间上建表
参与13

11 同行回答

zhmwang zhmwang PD OceanBase
回复 3# jeffbeck     rename这个tablespace啊,然后根据需要更改显示全部
回复 3# jeffbeck


    rename这个tablespace啊,然后根据需要更改 收起
互联网服务 · 2012-11-24
浏览1028
SaturnZone SaturnZone 数据库管理员 苏宁
回复 8# wangyax     看看,学习了!显示全部
回复 8# wangyax


    看看,学习了! 收起
互联网服务 · 2012-11-22
浏览1197
xuymb xuymb 售后工程师 神州数码
首先,确定sysadm_group实例参数是否配置,如果有,这里面的用户都会隐式赋予use表空间的权限其次,确定除了实例用户和创建数据库的用户外,是否显示对组或者用户赋予了use或dbadm权限,如果有,使用实例用户回收权限即可...显示全部
首先,确定sysadm_group实例参数是否配置,如果有,这里面的用户都会隐式赋予use表空间的权限
其次,确定除了实例用户和创建数据库的用户外,是否显示对组或者用户赋予了use或dbadm权限,如果有,使用实例用户回收权限即可 收起
IT分销/经销 · 2012-11-19
浏览1165
wangyax wangyax 软件开发工程师 金融机构
这个只是一个示例,真实情况下的用户权限分为3个层次:sysadm/syscontrol/sysmaint,比较复杂。显示全部
这个只是一个示例,真实情况下的用户权限分为3个层次:sysadm/syscontrol/sysmaint,比较复杂。 收起
互联网服务 · 2012-11-17
浏览1152
wangyax wangyax 软件开发工程师 金融机构
D:\>db2 "create table aaa(aaa char(1)) in jsp"DB21034E  该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在SQL 处理期间,它返回:SQL0551N  "POSTGRES" 不具有对对象 "JSP" 执行操作 "CREATE TABLE" 的特权。SQLSTATE=42501D:\>d...显示全部
D:\>db2 "create table aaa(aaa char(1)) in jsp"
DB21034E  该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0551N  "POSTGRES" 不具有对对象 "JSP" 执行操作 "CREATE TABLE" 的特权。
SQLSTATE=42501

D:\>db2 connect to sample

   数据库连接信息

数据库服务器         = DB2/NT 9.5.2
SQL 授权标识         = WANGYAX
本地数据库别名       = SAMPLE


D:\>db2 "GRANT USE OF TABLESPACE JSP TO USER POSTGRES"
DB20000I  SQL 命令成功完成。

D:\>db2 "create table aaa(aaa char(1)) in jsp"
DB20000I  SQL 命令成功完成。

D:\>db2 "REVOKE USE OF TABLESPACE JSP FROM USER postgres"DB20000I  SQL 命令成功完成。

D:\>db2 "create table ccc(ccc char(1)) in JSP"
DB21034E  该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0551N  "POSTGRES" 不具有对对象 "JSP" 执行操作 "CREATE TABLE" 的特权。
SQLSTATE=42501 收起
互联网服务 · 2012-11-17
浏览1208
lauyatsao lauyatsao 软件开发工程师 江苏南京
DB2中不存在用户和用户组的管理,是由操作系统层面来管理的,DB2中的public组可以理解为虚拟的,公共的,以区别于操作系统中的实际的用户组;DB2中存在三种形式的权限:管理权限、特权和 LBAC 凭证。实例用户实际上位于管理权限中的sysadm,也是纳入实例参数sysadm_group的配置,这里缺...显示全部
DB2中不存在用户和用户组的管理,是由操作系统层面来管理的,DB2中的public组可以理解为虚拟的,公共的,以区别于操作系统中的实际的用户组;
DB2中存在三种形式的权限:管理权限、特权和 LBAC 凭证。
实例用户实际上位于管理权限中的sysadm,也是纳入实例参数sysadm_group的配置,这里缺省的就是实例用户所属的组;
数据库创建时缺省所赋的权限和特权(DB2 V9之后create db增加的restrictive参数)以及数据库对象创建时缺省的特权赋予。
实际上将public组在系统缺省的用户表空间userspace1上的use特权revoke掉之后基本可以保证普通用户无法在数据库中创建表,如果需要的话,可以考虑schema和tablespace级别的具体的特权的grant,即权限最小化的安全控制; 收起
互联网服务 · 2012-11-14
浏览1219
kkchat kkchat 数据库管理员 IBM
实例用户对表空间USERSPACE1的use权限不会因为你revoke public组的权限而撤销,所以不需要担心db2inst1用户会对表空间'USERSPACE1'也没有操作的权限。显示全部
实例用户对表空间USERSPACE1的use权限不会因为你revoke public组的权限而撤销,所以不需要担心db2inst1用户会对表空间'USERSPACE1'也没有操作的权限。 收起
系统集成 · 2012-11-13
浏览1303
jeffbeck jeffbeck 数据库管理员 某银行
回复 4# weiruan85 本来就是实例用户进去操作的,自己给自己赋权,不行显示全部
回复 4# weiruan85
本来就是实例用户进去操作的,自己给自己赋权,不行 收起
银行 · 2012-11-13
浏览1271
weiruan85 weiruan85 数据库管理员 ibm
把use权限给这个用户不就可以了吗显示全部
把use权限给这个用户不就可以了吗 收起
政府机关 · 2012-11-12
浏览1137
jeffbeck jeffbeck 数据库管理员 某银行
回复 2# xiewenpeng 这个表空间是可以删除的。但是生产环境,不想去删。有看到建议是在建完数据库环境的时候就将这个表空间USERSPACE1  DROP掉,在建相应的用户表空间。实在不行就对这个表空间都revoke了。  这样应该是所有用户都不能在上面DML/DDL了。...显示全部
回复 2# xiewenpeng

这个表空间是可以删除的。但是生产环境,不想去删。

有看到建议是在建完数据库环境的时候就将这个表空间USERSPACE1  DROP掉,在建相应的用户表空间。

实在不行就对这个表空间都revoke了。  

这样应该是所有用户都不能在上面DML/DDL了。测了下,DQL即使表空间被revoke了,还是可以的。 收起
银行 · 2012-11-09
浏览1205

提问者

jeffbeck
jeffbeck 0 0 8
数据库管理员 某银行
擅长领域: 数据库服务器分布式系统
评论393

问题状态

  • 发布时间:2012-11-09
  • 关注会员:2 人
  • 问题浏览:6596
  • 最近回答:2012-11-24
  • X社区推广