DB2没有数据库级别的用户,只能使用操作系统级别的用户;所以要新建DB2用户,要先在数据库服务器上新建操作系统用户。
例如要给数据库新建一个 dcusr 用户

首先用root用户登录数据库服务器:

  • 添加用户:useradd dcusr
  • 修改dbusr的密码:passwd dcusr
    在这里插入图片描述
  • 切换用户到db2inst1 or pusinst1(DBA权限的用户,创建数据库的实例用户,一般名称为db2inst1):su - pusinst1
  • 连接到数据库:db2 connect to db_name
  • 赋予dcusr连接数据库的权限 : db2 grant connect on database to user dcusr
    在这里插入图片描述
授予数据库级特权权限参数有:
 CONNECT: 用户可以连接数据库
 CREATETAB: 用户可以在数据库中创建表
 LOAD: 用户可以将数据装载进表中
 BINDADD: 用户可以使用 BIND 命令在数据库中创建包
 CREATE_NOT_FENCED: 用户可以创建 unfenced 用户定义函数(UDF)
 IMPLICIT_SCHEMA: 用户可以在数据库中隐式地创建模式,而不需要使用 CREATE SCHEMA 命令
 CREATE_EXTERNAL_ROUTINE: 用户可以创建供应用程序和数据库的其他用户使用的过程
 SECADM:安全性管理员
 Dbadm:DBADM 用户对一个数据库有几乎完全的控制能力。DBADM 用户不能执行某些维护或管理任务

给用户赋予其他权限,例如给某个Schemal下的表赋权

  • dcusr赋予DB2WL模式下的表table_name select和insert权限:db2 grant select,insert on table DB2WL.table_name to user dcusr
  • 使用dbusr用户连接到数据库, 测试权限:db2 connect to db_name user dcusr using password
  • 用语句拼出来增删改查赋权语句:select 'GRANT SELECT,UPDATE,INSERT,DELETE ON TABLE '||TABSCHEMA||'.'||TABNAME||' TO USER dcusr;' from syscat.tables;
GRANT SELECT ON TABLE DB2WL.TB_NAME TO USER DCUSR WITH GRANT OPTION;
GRANT INSERT ON TABLE DB2WL.TB_NAME TO USER DCUSR WITH GRANT OPTION;
GRANT DELETE ON TABLE DB2WL.TB_NAME TO USER DCUSR WITH GRANT OPTION;
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐