9AMC 发表于 2016-11-13 06:26:49

db2建立schema

目录:
1.显式建立schema
2.隐式建立schema
3.查询现有的schema
4.删除schema
1.显式建立schema
执行create schema需要有DBADM权限
建立某个schema需要有SYSADM 和DBAMIN权限
总的来说就是需要SYSADM 和DBAMIN权限

--语法
CREATE SCHEMA <name> AUTHORIZATION <name>
--如果不输入AUTHORIZATION,就是执行命令的本人
db2 => create schema db2user12
DB20000IThe SQL command completed successfully.
db2 => select SCHEMANAME,OWNER from syscat.schemata where schemaname='DB2USER12'
SCHEMANAME                     OWNER      
------------------------------ -----------
DB2USER12                      DB2INST1   
1 record(s) selected.


2.隐式建立schema
如果你没有SYSADM,DBADMIN权限,但是你有IMPLICIT_SCHEMA,那么你也可以建立schema

--查询用户没有DBADMIN,但是有IMPLICIT_SCHEMA
db2 => GET AUTHORIZATIONS
Administrative Authorizations for Current User
Direct SYSADM authority                  = NO
Direct SYSCTRL authority                   = NO
Direct SYSMAINT authority                  = NO
Direct DBADM authority                     = NO
Direct CREATETAB authority               = NO
Direct BINDADD authority                   = NO
Direct CONNECT authority                   = NO
Direct CREATE_NOT_FENC authority         = NO
Direct IMPLICIT_SCHEMA authority         = NO
Direct LOAD authority                      = NO
Direct QUIESCE_CONNECT authority         = NO
Direct CREATE_EXTERNAL_ROUTINE authority   = NO
Direct SYSMON authority                  = NO
Indirect SYSADM authority                  = YES
Indirect SYSCTRL authority               = NO
Indirect SYSMAINT authority                = NO
Indirect DBADM authority                   = NO
Indirect CREATETAB authority               = YES
Indirect BINDADD authority               = YES
Indirect CONNECT authority               = YES
Indirect CREATE_NOT_FENC authority         = NO
Indirect IMPLICIT_SCHEMA authority         = YES
Indirect LOAD authority                  = NO
Indirect QUIESCE_CONNECT authority         = NO
Indirect CREATE_EXTERNAL_ROUTINE authority = NO
Indirect SYSMON authority                  = NO
--显式创立失败
db2 => create schema db2user11
DB21034EThe command was processed as an SQL statement because it was not a
valid Command Line Processor command.During SQL processing it returned:
SQL0552N"DB2USER1" does not have the privilege to perform operation "CREATE
SCHEMA".SQLSTATE=42502
--隐式建立成功
db2 => create table db2user11.t1 (aaa integer)
DB20000IThe SQL command completed successfully.
--再查询现在的schema和OWNER,可以发现owner是SYSIBM
db2 =>   select SCHEMANAME,OWNER from syscat.schemata where schemaname='DB2USER11'
SCHEMANAME      OWNER                  
--------------- -----------------------
DB2USER11       SYSIBM               
1 record(s) selected.


3.查询现有的schema

db2 => select schemaname from syscat.schemata
SCHEMANAME                                                                                                                     
--------------------------------------------------------------------------------------------------------------------------------
DB2INST1                                                                                                                        
DB2USER1                                                                                                                        
DB2USER11                                                                                                                     
DB2USER12                                                                                                                     
NULLID                                                                                                                        
SQLJ                                                                                                                           
SYSCAT                                                                                                                        
SYSFUN                                                                                                                        
SYSIBM                                                                                                                        
SYSIBMADM                                                                                                                     
SYSIBMINTERNAL                                                                                                                  
SYSIBMTS                                                                                                                        
SYSPROC                                                                                                                        
SYSPUBLIC                                                                                                                     
SYSSTAT                                                                                                                        
SYSTOOLS                                                                                                                        
16 record(s) selected.
--查询有表的schema
db2 => SELECT distinct TABSCHEMA FROM SYSCAT.TABLES
TABSCHEMA                                                                                                                     
--------------------------------------------------------------------------------------------------------------------------------
DB2INST1                                                                                                                        
DB2USER1                                                                                                                        
DB2USER11                                                                                                                     
SYSCAT                                                                                                                        
SYSIBM                                                                                                                        
SYSIBMADM                                                                                                                     
SYSPUBLIC                                                                                                                     
SYSSTAT                                                                                                                        
SYSTOOLS                                                                                                                        
9 record(s) selected.



4.删除schema

--语法
DROP SCHEMA <name> RESTRICT
页: [1]
查看完整版本: db2建立schema