db2数据库的schema和user

本文转载自 “滴水穿石孙杰” 博客,请务必保留此出处http://xjsunjie.blog.51cto.com/999372/1306770

数据库中Schema有两种含义,一种是概念上的Schema,指的是一组DDL语句集,该语句集完整地描述了数据库的结构。还有一种是物理上的 Schema,指的是数据库中的一个名字空间,它包含一组表、视图和存储过程等命名对象。简单的说,Schema就是一个(数据库)用户所拥有的数据库的对象。

在一个数据库中可以有多个应用的数据表,这些不同应用的表可以放在不同的schema之中,同时,每一个schema对应一个用户,不同的应用可以以不同的用户连接数据库,这样,一个大数据库就可以根据应用把其表分开来管理。不同的schema之间它们没有直接的关系,不同的shcema之间的表可以同名,也可以互相引用(但必须有权限),在没有操作别的schema的操作根权下,每个用户只能操作它自己的schema下的所有的表。不同的schema下的同名的表,可以存入不同的数据(即schema用户自己的数据).

数据库中的User和Schema到底什么关系呢?其实User就是每个Schema的主人,如果当前操作数据库的用户有默认的Schema(在创建用户的时候指定了),那么新表被创建在默认的Schema上。 通过这样的方法,主要是方便管理。

在DB2中的schema的概念和ORACLE中的概念有着本质的区别:在ORACLE中schema和用户是同一个;在DB2中schema不一定是用户,因为db2内部没有用户的概念,连接用户必须是操作系统用户.


查询当前存在的Schema

db2 "select SCHEMANAME,owner,CREATE_TIME from syscat.schemata"



在有些情况下,当前登录用户所要访问的Schema可能并不是默认分配给他的Schema,这时查询表前就需要一个前缀来约束所要访问的Schema。

如:

db2 "SELECT * FROM wanted_schema_name.table_name"



或通过下面的命令可以修改当前Schema

SET CURRENT SCHEMA = 'PAYROLL'
SET SCHEMA 'PAYROLL'


在开发过程中,可以通过修改连接字符串来修改默认连接的Schema/Sqlid,

以JDBC为例(最后的分号一定不能省略):

jdbc:db2://database_server_uri:port/database_name:currentSchema=schema_name;


db2 切换 schema 及执行脚本

在windows 下测试过

1、打开 cmd 命令

2、db2cmd

3、db2 connect to test user meta using portaldb ----连接数据库

4、db2 select current schema from sysibm.sysdummy1 ----查看当前数据库默认的schema

5、db2set current schema bast ---设置schema

6、db2 select current schema from sysibm.sysdummy1 ---查看是否设置成功

7、db2 -tvf d:\\meta\meta_ddl.sql --在指定的schema执行建表语句


DB2 将schema下所有表的权限赋予一个用户

db2 "select 'db2 grant select on table DB2INST2.'|| tabname ||' to db2inst1' from syscat.tables where tabschema='DB2INST2'"


单独对某个Schema下的表进行授权

C:\Users\Administrator>db2 grant select on table zssqsong.kc_team_user to user zssqding


DB20000I SQL 命令成功完成。


本文出自 “滴水穿石孙杰” 博客,请务必保留此出处http://xjsunjie.blog.51cto.com/999372/1306770

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统重启db2数据库命令实例详解全文共4页,当前为第1页。Linux系统重启db2数据库命令实例详解全文共4页,当前为第1页。Linux系统重启db2数据库命令实例详解 Linux系统重启db2数据库命令实例详解全文共4页,当前为第1页。 Linux系统重启db2数据库命令实例详解全文共4页,当前为第1页。 Linux系统中db2数据库的启动关闭可以通过命令来实现。下面由店铺为大家整理了Linux系统重启db2数据库命令实例详解,希望对大家有帮助! Linux系统重启db2数据库命令实例详解 DB2重启数据库实例时,有时停止实例会失败,此时需要先确认没有应用链接数据库,然后再关闭数据库实例,并重新启动。 1.查看是否有活动的链接 命令:db2 list applications for db db_name 发现有两个活动链接,此时需要将链接进行关闭。 2.关闭连接 命令:db2 force application all 3.再执行一次步骤1中的命令,查看链接是否全部关闭。 4.执行停止实例命令 命令:db2stop 注意:命令中没有空格 5.执行实例启动命令 命令:db2start 6.如果此时,发现连接不了数据库,莫慌,需要激活目标数据库 首先查看是否有活跃的数据库 命令:db2 list active databases 如果没有,需要对目标数据库进行激活设置 命令:db2 activate database db_name 然后再次使用上一条命令,就可查看到当前已有活跃的数据库了,此时可进行连接并执行数据库操作。 在停止数据库实例失败时,也有一种直接迅速的方法可以停止实例,不过不建议使用,最好还是按照上述的步骤进行。 快速方法 执行命令:db2stop force Linux系统重启db2数据库命令实例详解全文共4页,当前为第2页。Linux系统重启db2数据库命令实例详解全文共4页,当前为第2页。Linux系统db2数据库常用命令 Linux系统重启db2数据库命令实例详解全文共4页,当前为第2页。 Linux系统重启db2数据库命令实例详解全文共4页,当前为第2页。 启动数据库: 启动db2服务:db2start 激活数据库实例:db2 activate database <db_name> 查看激活状态的数据库db2 list active databases 关闭数据库: 失效数据库实例:db2 deactivate database <db_name> 关闭数据库服务:db2stop 查看数据库db2 list db directory 查看数据库应用:db2 list applications 查看数据库应用和进程号:db2 list applications show detail 查看数据库表空间:db2pd -db <db_name> -tablespace 查看数据库配置:db2 get db cfg for <db_name> 连接数据库db2 connect to <db_name> db2 connect to <db_name> user[user_name] using [password] 断开数据库连接db2 connect reset/db2 terminate 创建数据库db2 create db <db_name> 删除数据库db2 drop database <db_name> (如果不能删除,尝试断开激活的连接或者重启db2) 列出系统表:db2 list tables for system 列出所有用户表:db2 list tables 列出所有表:db2 list tables for all 列出特定用户表:db2 list tables for schema [user] 复制一张表:db2 create table t1 like t2 显示表结构:db2 describe table tablename 查询表:db2 "select * from table tablename where ..." 执行SQL脚本:db2 -tvf scripts.sql 查看错误代码信息:db2 ? 10054 停止激活的连接db2 force application all;\db2 force Linux系统重启db2数据库命令实例详解全文共4页,当前为第3页。Linux系统重启db2数据库命令实例详解全文共4页,当前为第3页。application all;\db2 force application all;\db2stop Linux系统重启db2数据库命令实例详解全文共4页,当前为第3页。 Linux系统重启db2数据库命令实例详解全文共

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值