GRANT BINDADD ON DATABASE TO USER dstuser; GRANT CONNECT ON DATABASE TO USER dstuser; GRANT LOAD ON DATABASE TO USER dstuser;
--授予用户访问表空间的权限 GRANT USE OF TABLESPACE GD_MAIN_TBS TO USER dstuser; GRANT USE OF TABLESPACE GD_IDX_TBS TO USER dstuser;
--授予用户操作模式的权限 GRANT ALTERIN ON SCHEMA dstuser TO USER dstuser; GRANT CREATEIN ON SCHEMA dstuser TO USER dstuser; GRANT DROPIN ON SCHEMA dstuser TO USER dstuser;
--授予用户读取表权限(ECGD.CL_COMMODITY应该是需要授权查询的表) GRANT SELECT ON TABLE ECGD.CL_COMMODITY TO USER dstuser;
创建各种对象: groupadd -g 5000 appgroup useradd -g appgroup -u 5001 dstuser passwd dstuser db2 connect to DSTDB create schema dstuser GRANT DBADM ON DATABASE TO USER dstuser; GRANT ALTERIN ON SCHEMA dstuser TO USER dstuser; GRANT CREATEIN ON SCHEMA dstuser TO USER dstuser; GRANT DROPIN ON SCHEMA dstuser TO USER dstuser;
测试: connect to DSTDB user dstuser create table test(id char(10)) insert into test values('1') insert into test values('2') delete from test where id=1 select * from test drop table test
2 个回复
nccloud
下载:164295164@qq.com
nccloud
DB2数据库里根本就没有用户这个概念,只有模式。那db2怎么进行权限分离和最小化管理?再深入地查资料时,发现db2自己在数据库体系结构内不使用用户的概念,但是它还是变相引用,它使用的是操作系统层面创建的用户,在数据库场面对创建模式,然后对操作系统用户、模式、database进行绑定即可。与oracle不一样的是,db2这里模式名字和用户名字可以不一样。
小结一下: 一个instance下可以有多个database,一个database下可以有多个schema,1个schema可以被多个user使用。
操作步骤如下:
1、操作系统下创建用户
2、db2数据库下创建模式(也可以不创建。不创建的情况下,DB2会使用你连接的用户名作为默认的模式名字)
3、赋权给用户
--授权用户访问数据库权限
GRANT BINDADD ON DATABASE TO USER dstuser;
GRANT CONNECT ON DATABASE TO USER dstuser;
GRANT LOAD ON DATABASE TO USER dstuser;
--授予用户访问表空间的权限
GRANT USE OF TABLESPACE GD_MAIN_TBS TO USER dstuser;
GRANT USE OF TABLESPACE GD_IDX_TBS TO USER dstuser;
--授予用户操作模式的权限
GRANT ALTERIN ON SCHEMA dstuser TO USER dstuser;
GRANT CREATEIN ON SCHEMA dstuser TO USER dstuser;
GRANT DROPIN ON SCHEMA dstuser TO USER dstuser;
--授予用户读取表权限(ECGD.CL_COMMODITY应该是需要授权查询的表)
GRANT SELECT ON TABLE ECGD.CL_COMMODITY TO USER dstuser;
创建各种对象:
groupadd -g 5000 appgroup
useradd -g appgroup -u 5001 dstuser
passwd dstuser
db2
connect to DSTDB
create schema dstuser
GRANT DBADM ON DATABASE TO USER dstuser;
GRANT ALTERIN ON SCHEMA dstuser TO USER dstuser;
GRANT CREATEIN ON SCHEMA dstuser TO USER dstuser;
GRANT DROPIN ON SCHEMA dstuser TO USER dstuser;
测试:
connect to DSTDB user dstuser
create table test(id char(10))
insert into test values('1')
insert into test values('2')
delete from test where id=1
select * from test
drop table test
查看当前schema命令: db2 "values( current schema)"
设置当前schema命令: set current schema [shemaname]