升级用户创建

简介: --1. 创建源库迁移临时用户 CREATE USER migups IDENTIFIED BY &pwDEFAULT TABLESPACE usersTEMPORARY TABLESPACE tempQUOTA UNLIMITED ON users;GRANT dba TO migups;GRANT select ON sys.

--1. 创建源库迁移临时用户
CREATE USER migups IDENTIFIED BY &pw
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON users;

GRANT dba TO migups;
GRANT select ON sys.user$ TO migups;
GRANT RESTRICTED SESSION TO migups;
GRANT EXP_FULL_DATABASE TO migups;
GRANT EXECUTE ON SYS.DBMS_LOCK TO migups ;
GRANT SELECT ON SYS.LINK$ TO migups ;

--2. 创建源库迁移用户清单记录表
CREATE TABLE migups.s_user_list(
username VARCHAR2(30) primary key,
flag varchar2(1),
ggflag int,
src_tbs VARCHAR2(30),
dst_tbs VARCHAR2(30)
);
comment on column migups.s_user_list.FLAG
is 'y或Y表示要迁移,n或N表示不迁移';
comment on column migups.s_user_list.GGFLAG
is '1表示要配置在gg回滚链路里 0或空表示不配置在gg回滚链路里';

--在源库中migups用户下创建要迁移的表空间清单配置表
CREATE TABLE migups.s_tbs_list(
tbsname VARCHAR2(30)
);

--3. 创建源库Job备份清单表
create table migups.S_JOB_LIST
(
JOB NUMBER not null,
ISMIG VARCHAR2(1) not null,
SRC VARCHAR2(100) not null,
LOG_USER VARCHAR2(30),
PRIV_USER VARCHAR2(30),
SCHEMA_USER VARCHAR2(30),
LAST_DATE DATE,
LAST_SEC VARCHAR2(16),
THIS_DATE DATE,
THIS_SEC VARCHAR2(16),
NEXT_DATE DATE,
NEXT_SEC VARCHAR2(16),
TOTAL_TIME NUMBER,
BROKEN VARCHAR2(1),
INTERVAL VARCHAR2(200),
FAILURES NUMBER,
WHAT VARCHAR2(4000) not null,
NLS_ENV VARCHAR2(4000) ,
INSTANCE NUMBER,
resume_nextdate varchar2(20)
);
comment on column migups.S_JOB_LIST.ISMIG
is '是否迁移 0:是目标库初始化时创建的不能迁移或删除 1:是 2:否 3:其它(未定)';
comment on column migups.S_JOB_LIST.SRC
is 'job来源, 如:SRC_10G:来自10g源库 TGT_11G:来自11g目标库即11g目标库初始化时创建的';
comment on column migups.S_JOB_LIST.resume_nextdate
is '恢复Job时候,设置下次运行的时间' ;

---4. 在源库部署数据校验对比的table及procedure
create table dba_owner.TAB_HASH
(
OWNER VARCHAR2(30),
TABLE_NAME VARCHAR2(50),
SQL_VALUE VARCHAR2(4000),
HASH_VALUE NUMBER(20)
) ;

CREATE OR REPLACE PROCEDURE dba_owner.GET_TAB_HASH8(V_OWNER VARCHAR2,
V_TABLE_NAME VARCHAR2)
AS
v_sql_temp varchar2(4000);
v_hash number(20);
BEGIN
FOR r in (SELECT COLUMN_NAME FROM DBA_TAB_COLUMNS WHERE OWNER = V_OWNER AND TABLE_NAME = V_TABLE_NAME

           AND DATA_TYPE NOT IN ('CLOB', 'BLOB')order by 1 asc) loop
v_sql_temp:= v_sql_temp || '||' || R.COLUMN_NAME;

end loop;
v_sql_temp:= 'select/+ parallel(t 8) full(t)/ sum(dbms_utility.get_hash_value(' || substr(v_sql_temp,3) || ', 0, 999999999)) from '
|| V_OWNER || '.' || V_TABLE_NAME || ' t';

execute immediate v_sql_temp into v_hash;

insert into tab_hash(owner, table_name, sql_value, hash_value) values (V_OWNER, V_TABLE_NAME, v_sql_temp || ';', v_hash);
commit;
EXCEPTION
WHEN OTHERS THEN

NULL;

END;
/
----------------------------------------------------------2
--升级不同的库时,此脚本有个地方需要本地化,搜索“需要修改的地方”
conn / as sysdba

accept pswd prompt 'Input the migupd password: ' hide
SET termout on feedback on verify OFF echo on heading OFF trims ON escape ON pages 0 linesize 999 long 3000
--在新库(目标库)操作系统创建迁移升级使用的目录
host mkdir -p $HOME/$ORACLE_SID/migup/pre
spool $HOME/$ORACLE_SID/migup/pre/pre_deal_oneday.log

--复核新库(目标库)是否使用的是ASM盘上的参数文件,正确结果为no rows selected
select name,value from v$parameter v where name='spfile' and v.VALUE not like '+%spfile%';

--按要求设置11G相关参数
alter system set job_queue_processes=0 scope=both;
alter system set aq_tm_processes =0 scope=both;
alter system set audit_trail='NONE' scope=spfile;
alter system set recyclebin='OFF' scope=spfile;
alter system set deferred_segment_creation=FALSE scope=both;
alter system set optimizer_use_sql_plan_baselines=TRUE scope=both ;
alter system set "_serial_direct_read"=never scope=both ;
alter system set "_use_adaptive_log_file_sync"=false scope=both ;

--按要求设置12c相关参数 ---需要修改的地方:升级11G的请注释此处的参数-----
alter system set audit_sys_operations=false scope=spfile;
alter system set temp_undo_enabled=true scope=spfile;
alter system set parallel_min_servers =0 scope=both;
alter system reset sec_case_sensitive_logon scope=spfile;
alter system set "_optimizer_dsdir_usage_control"=0 scope=spfile;
alter system set "_sql_plan_directive_mgmt_control="=0 scope=spfile ;
alter system set "_use_single_log_writer"=true scope=spfile ;

--复核目标库要求设置的参数是否正确设置,正确结果为no rows selected
select name, value
from v$parameter v
where (v.NAME = 'job_queue_processes' and v.VALUE <> '0')

or (v.NAME = 'aq_tm_processes' and v.VALUE <> '0')
or (v.NAME = 'audit_trail' and upper(v.VALUE) <> 'NONE')
or (v.NAME = 'recyclebin' and upper(v.VALUE) <> 'OFF')
or (v.NAME = 'deferred_segment_creation' and upper(v.VALUE) <> 'FALSE')
or (v.NAME = 'optimizer_use_sql_plan_baselines' and upper(v.VALUE) <> 'TRUE')
or (v.NAME = 'audit_sys_operations' and upper(v.VALUE) <> 'FALSE')
or (v.NAME = 'temp_undo_enabled' and upper(v.VALUE) <> 'TRUE')    
or (v.NAME = 'parallel_min_servers' and upper(v.VALUE) <> '0')    
or (v.NAME = 'sec_case_sensitive_logon' and upper(v.VALUE) <> 'TRUE')
or (v.NAME = 'fixed_date' and v.VALUE is not null);

--在新库(目标库)中migupd用户下创建要迁移的用户清单配置表
CREATE TABLE migupd.t_user_list(
username VARCHAR2(30) primary key,
flag varchar2(1),
ggflag int,
src_tbs VARCHAR2(30),
dst_tbs VARCHAR2(30)
);
comment on column MIGUPD.T_USER_LIST.FLAG
is 'y或Y表示要迁移,n或N表示不迁移,S或者s代表目标库已经初始化创建的不需要迁移的用户';
comment on column MIGUPD.T_USER_LIST.GGFLAG
is '1表示要配置在gg回滚链路里 0或空表示不配置在gg回滚链路里';

--在新库(目标库)中migupd用户下创建要迁移的表空间清单配置表
CREATE TABLE migupd.t_tbs_list(
tbsname VARCHAR2(30)
);

--需要修改的地方------个性化定制----
--初始化新库(目标库)中migupd用户下的待迁移表空间清单配置表 特别注意:升级不同的库要修改以下初始化语句
insert into migupd.t_tbs_list
select distinct tablespace_name from dba_data_files@dblink_migup b
where b.tablespace_name not in
(select tablespace_name from dba_tablespaces@dblink_migup a

where (a.tablespace_name in ('TEMP','SYSAUX','SYSTEM','USERS','其他不迁移表空间' ) or a.contents in ('TEMPORARY','UNDO'))

) ;

--初始化新库(目标库)中migupd用户下的待迁移用户清单配置表 特别注意:升级不同的库要修改以下初始化语句
--注意:待迁移表空间上对象的属主用户都在待迁移用户清单中;待迁移用户的对象都在待迁移表空间中.否则要提前安排整改和特殊处理步骤
INSERT INTO migupd.t_user_list
(username, flag ,ggflag,src_tbs, dst_tbs)
SELECT username, 'Y', 1, default_tablespace, default_tablespace

FROM dba_users@dblink_migup

WHERE username not in (select username from migupd.t_user_list)

  and username not in    ` 
     ('SYS', 'SYSTEM', 'PUBLIC', 'OUTLN', 'WMSYS', 'ORDSYS', 'MDSYS','CTXSYS', 'XDB', 'WKSYS', 
      'ANONYMOUS', 'ORDPLUGINS', 'EXFSYS', 'LBACSYS' ,'DIP', 'LBACSYS', 'ORACLE_OCM', 'TSMSYS' , 
      'SCOTT', 'JONES', 'CLARK', 'BLAKE', 'ADAMS', 'TRACESVR','DBSNMP','SYSMAN','MGMT_VIEW','DMSYS')
 and username not in ('FGLPA','PERFSTAT','SPOTLIGHT','I3_ORCL','FOGLIGHT','DBSTATS','DBAQUERY','MIGUPS',
                      'GGMGR','GGBAK', 'GGDEPLOY','RSMSMONOPR', 'EXPFULL', 'DBCONN', 'TOAD',
                      'DBQINTF'/*,'DBMON','OVSEE','FACTUSERMGR', 'DEPLOYOP','DBMONOPR' , 'DBMONOPR02'*/);

commit ;
----以下用户不需要迁移到目标库,但为使迁移过程不报错,仍然将相关的对象迁移到新库后再清理掉
INSERT INTO migupd.t_user_list
(username, flag ,ggflag,src_tbs, dst_tbs)
SELECT username, 'N', 0, default_tablespace, default_tablespace

FROM dba_users@dblink_migup

WHERE username in ('SPOTLIGHT','GGMGR')
;
commit ;
INSERT INTO migupd.t_user_list
(username, flag ,ggflag,src_tbs, dst_tbs)
SELECT username, 'S', 0, default_tablespace, default_tablespace

FROM dba_users

WHERE username not in (select username from migupd.t_user_list)

 and username not in ('MIGUPD','GGBAK','FOGLIGHT')
 and username not in 
     ('SYS', 'SYSTEM', 'PUBLIC', 'OUTLN', 'WMSYS', 'ORDSYS', 'MDSYS','CTXSYS', 'XDB', 'WKSYS', 
      'ANONYMOUS', 'ORDPLUGINS', 'EXFSYS', 'LBACSYS' ,'DIP', 'LBACSYS', 'ORACLE_OCM', 'TSMSYS' , 
      'SCOTT', 'JONES', 'CLARK', 'BLAKE', 'ADAMS', 'TRACESVR','DBSNMP','APPQOSSYS')

;
commit ;

--标志要配置在GG回滚链路里的用户
--实名用户不在GG回滚链路中配置
update migupd.t_user_list set ggflag=0 where username in( select oa_name from dba_owner.factuser_list@dblink_migup );
update migupd.t_user_list set ggflag=0 where username in( 'FACTUSERMGR','DBMONOPR','DBMONOPR_JZZC','DBQINTF','DBACOMM','DEPLOYOP','DBQUA','DBMONOPR02','dba_owner');

--整库升级或整库迁移升级时,不改变数据库架构,所以用户的表空间不变
--UPDATE migupd.t_user_list t SET t.dst_tbs = 'USERS' WHERE src_tbs IN ('xxx','xxx');
--UPDATE migupd.t_user_list t set t.dst_tbs = 'yyy' where t.username = 'yyy' and t.src_tbs ='ddd' ;
commit;

-- XTTS检查是否有业务对象都在迁移表空间上,业务对象在迁移表空间范围外的需要提前处理,正确结果为no rows selected
select distinct a.owner, a.segment_name , a.partition_name , a.segment_type , a.tablespace_name from dba_segments@dblink_migup a
where a.tablespace_name not in (select tbsname from migupd.t_tbs_list )

and a.owner in (select username  from  migupd.t_user_list where flag ='Y');    

-- XTTS检查迁移表空间上的对象属主是否都在迁移用户清单中. 否则需要提前处理迁移到其他表空间或者加入迁移用户清单,正确结果为no rows selected
select distinct a.owner, a.segment_name , a.partition_name , a.segment_type , a.tablespace_name from dba_segments@dblink_migup a
where a.tablespace_name in (select tbsname from migupd.t_tbs_list )

and a.owner not in (select username  from  migupd.t_user_list where flag ='Y');    

--在新库(目标库)中migupd用户下创建job清单表--
create table migupd.T_JOB_LIST(
JOB NUMBER not null,
ISMIG VARCHAR2(1) not null,
SRC VARCHAR2(100) not null,
LOG_USER VARCHAR2(30),
PRIV_USER VARCHAR2(30),
SCHEMA_USER VARCHAR2(30),
LAST_DATE DATE,
LAST_SEC VARCHAR2(16),
THIS_DATE DATE,
THIS_SEC VARCHAR2(16),
NEXT_DATE DATE,
NEXT_SEC VARCHAR2(16),
TOTAL_TIME NUMBER,
BROKEN VARCHAR2(1),
INTERVAL VARCHAR2(200),
FAILURES NUMBER,
WHAT VARCHAR2(4000) not null,
NLS_ENV VARCHAR2(4000) ,
INSTANCE NUMBER,
resume_nextdate varchar2(20)
);
comment on column migupd.T_JOB_LIST.ISMIG
is '是否迁移 0:是新库初始化时创建的不能迁移或删除 1:是 2:否 3:其它(未定)';
comment on column migupd.T_JOB_LIST.SRC
is 'job来源 OLD:来自旧库 NEW:来自新库(目标库)即新库初始化时创建的';
comment on column migupd.T_JOB_LIST.resume_nextdate
is '恢复Job时候,设置下次运行的时间' ;

SET termout OFF feedback OFF verify OFF echo OFF heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/$ORACLE_SID/migup/pre/01_11g_deal_tablespaces.sql
-----需要修改的地方:调整目标库已有表空间的大小, 如Users表空间、临时表空间、Undo表空间
select 'alter database tempfile '||''''||df.file_name||''''||' resize 20000M ;' from dba_temp_files df where df.tablespace_name= 'TEMP' ;
select 'alter tablespace TEMP add tempfile '''||substr(file_name, 1, instr(file_name, '/') - 1)||''' size 20000M autoextend on;'
from dba_temp_files where rownum <=2 ;

select 'alter database datafile '||''''||df.file_name||''''||' resize 20000M ;' from dba_data_files df where df.autoextensible='NO' and df.tablespace_name='UNDOTBS1' ;
select 'alter tablespace UNDOTBS1 add datafile '''||substr(file_name, 1, instr(file_name, '/') - 1)||''' size 20000M autoextend on;'
from dba_data_files where rownum <=3 ;

spool off;
commit;
SET termout on feedback on verify OFF echo on heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/$ORACLE_SID/migup/pre/pre_deal_oneday.log append
@$HOME/$ORACLE_SID/migup/pre/01_11g_deal_tablespaces.sql

--在新库(目标库)中创建迁移角色
spool off;
SET termout OFF feedback OFF verify OFF echo OFF heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/$ORACLE_SID/migup/pre/01_11g_deal_role.sql
select 'create role ' || role || ';'
from (select role

      from dba_roles@dblink_migup  where role not in('MGMT_USER','CTXAPP','LBAC_DBA')
    minus
    select role from dba_roles);

spool off;
commit;
SET termout on feedback on verify OFF echo on heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/$ORACLE_SID/migup/pre/pre_deal_oneday.log append
--使用migupd临时用户来创建role,避免sys角色太多出问题
conn migupd/&pswd
@$HOME/$ORACLE_SID/migup/pre/01_11g_deal_role.sql

--切换回sys用户继续执行
conn / as sysdba

--设置migupd临时用户的default role,避免登录报错ORA-28031: maximum of 148 enabled roles exceeded----
ALTER USER MIGUPD DEFAULT ROLE DBA;

--复核migupd临时用户的default role个数为1
select count(1) default_role_cnt from dba_role_privs rl where rl.grantee = 'MIGUPD' and rl.default_role = 'YES' ;

--复核新库(目标库)中角色是否创建完整,正确结果为no rows selected
select role
from dba_roles@dblink_migup where role not in ('MGMT_USER','CTXAPP','LBAC_DBA')
minus
select role from dba_roles;
commit;

--在新库(目标库)中创建迁移profile并复核
spool off;
SET termout OFF feedback OFF verify OFF echo OFF heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/$ORACLE_SID/migup/pre/01_11g_deal_profile.sql
select (case

      when rn = 1 then
       ('create profile ' || profile ||' limit ' || resource_name ||' ' || limit || (case
      when rn = max_rn then
       ';'
    end)) else(resource_name || ' ' || limit || (case
     when rn = max_rn then
      ';'
   end)) end)

from (select profile,

           resource_name,
           limit,
           row_number() over(partition by profile order by profile, resource_name) rn,
           count(*) over(partition by profile) max_rn
      from dba_profiles@dblink_migup
     where profile in
           (select distinct profile
              from dba_profiles@dblink_migup
            minus
            select distinct profile from dba_profiles)
     order by profile, resource_name)

order by profile, resource_name;
spool off;
commit;
SET termout on feedback on verify OFF echo on heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/$ORACLE_SID/migup/pre/pre_deal_oneday.log append
@$HOME/$ORACLE_SID/migup/pre/01_11g_deal_profile.sql
--复核新库(目标库)中profile是否创建完整,正确结果为no rows selected
select distinct profile
from dba_profiles@dblink_migup
minus
select distinct profile from dba_profiles;
commit;

--在新库(目标库)中创建要迁移的context并复核
spool off;
SET termout OFF feedback OFF verify OFF echo OFF heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/$ORACLE_SID/migup/pre/01_tgt_deal_context.sql
select 'create or replace context ' || c.namespace || ' using ' ||

     c.schema || '.' || c.package || ' ' || case
       when c.type like '% LOCALLY%' then
        ';'
       else
        c.type || ';'
     end Create_context
from dba_context@dblink_migup c

where c.schema in (select username

                    from migupd.t_user_list t
                   where flag = 'Y'  or flag is null)
 and c.namespace not in (select namespace from dba_context);

SPOOL OFF ;
commit;
SET termout on feedback on verify OFF echo on heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/$ORACLE_SID/migup/pre/pre_deal_oneday.log append
@$HOME/$ORACLE_SID/migup/pre/01_tgt_deal_context.sql
--复核新库(目标库)中context是否创建完整,正确结果为no rows selected
select namespace
from dba_context@dblink_migup
where schema in (select username

                from migupd.t_user_list t
               where flag = 'Y' or flag is null)

minus
select namespace
from dba_context
where schema in (select username

                from migupd.t_user_list t
               where flag = 'Y' or flag is null);

commit;

--记录新建空库中的初始用户
spool off;
SET termout on feedback on verify OFF echo on heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/$ORACLE_SID/migup/pre/pre_deal_oneday.log append
select username from dba_users;
commit;

--查询并记录keep到内存中的对象
spool off;
SET termout on feedback on verify OFF echo on heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/$ORACLE_SID/migup/pre/pre_deal_oneday.log append
select 'alter table '||owner||'.'||table_name||' storage(buffer_pool keep);' from dba_tables@dblink_migup where buffer_pool = 'KEEP';
select 'alter index '||owner||'.'||index_name||' storage(buffer_pool keep);' from dba_indexes@dblink_migup where buffer_pool = 'KEEP';
commit;

spool off

-----------------------------------------------------3
conn / as sysdba

SET termout on feedback on verify OFF echo on heading OFF trims ON escape ON pages 0 linesize 999 long 3000
--在新库(目标库)操作系统创建迁移升级使用的目录
host mkdir -p $HOME/$ORACLE_SID/migup/pre
spool $HOME/$ORACLE_SID/migup/pre/tgt_pre_xtts_deal_oneday_check.log

--复核目标库是否使用的是ASM盘上的参数文件,正确结果为no rows selected
select name,value from v$parameter v where name='spfile' and v.VALUE not like '+%spfile%';

--复核新库(目标库)是否为非归档模式
archive log list;

--复核新库(目标库)要求设置的参数是否正确设置,正确结果为no rows selected
select name, value
from v$parameter v
where (v.NAME = 'job_queue_processes' and v.VALUE <> '0')

or (v.NAME = 'aq_tm_processes' and v.VALUE <> '0')
or (v.NAME = 'audit_trail' and upper(v.VALUE) <> 'NONE')
or (v.NAME = 'recyclebin' and upper(v.VALUE) <> 'OFF')
or (v.NAME = 'deferred_segment_creation' and upper(v.VALUE) <> 'FALSE')
or (v.NAME = 'audit_sys_operations' and upper(v.VALUE) <> 'FALSE')
or (v.NAME = 'temp_undo_enabled' and upper(v.VALUE) <> 'TRUE')    
or (v.NAME = 'parallel_min_servers' and upper(v.VALUE) <> '0')    
or (v.NAME = 'sec_case_sensitive_logon' and upper(v.VALUE) <> 'TRUE')
or (v.NAME = 'fixed_date' and v.VALUE is not null);

--复核新库(目标库)中临时使用的迁移用户migupd是否已经创建,正确结果为MIGUPD
select username from dba_users where username in ('MIGUPD');

--复核新库(目标库)中临时使用的dblink是否已经创建,正确结果为dblink_migup
col owner for a32
col db_link for a32
col username for a32
col host for a32
col object_name for a32

select owner,db_link,username,host from dba_db_links where db_link ='DBLINK_MIGUP' and owner in ('MIGUPD', 'PUBLIC' );

--复核新库(目标库)中临时使用的表migupd.t_user_list,migupd.T_JOB_LIST是否已创建,正确结果这2张表都有
select owner,table_name,tablespace_name from dba_tables
where owner='MIGUPD' and table_name in('T_USER_LIST','T_JOB_LIST');

--复核新库(目标库)中临时表t_user_list,t_tbs_list是否已经初始化
select * from MIGUPD.T_USER_LIST order by 1;
select * from MIGUPD.T_tbs_LIST order by 1;

-- XTTS检查是否有业务对象都在迁移表空间上,业务对象在迁移表空间范围外的需要提前处理,正确结果为no rows selected
select distinct a.owner, a.segment_name , a.partition_name , a.segment_type , a.tablespace_name from dba_segments@dblink_migup a
where a.tablespace_name not in (select tbsname from migupd.t_tbs_list )

and a.owner in (select username  from  migupd.t_user_list where flag ='Y');    

-- XTTS检查迁移表空间上的对象属主是否都在迁移用户清单中. 否则需要提前处理迁移到其他表空间或者加入迁移用户清单,正确结果为no rows selected
select distinct a.owner, a.segment_name , a.partition_name , a.segment_type , a.tablespace_name from dba_segments@dblink_migup a
where a.tablespace_name in (select tbsname from migupd.t_tbs_list )

and a.owner not in (select username  from  migupd.t_user_list where flag ='Y');    

--复核新库(目标库)已经存在的临时表t_user_list清单中的用户---add by liuyong
select username , to_char( u.created,'yyyy-mm-dd hh24:mi:ss') created, u.default_tablespace from dba_users u where exists (
select 1 from migupd.t_user_list t where t.username = u.username and t.flag ='Y'
);

--复核新库(目标库)中角色是否创建完整,正确结果为no rows selected
select role
from dba_roles@dblink_migup where role not in ('MGMT_USER','CTXAPP','LBAC_DBA','XDBADMIN','WKUSER','AUTHENTICATEDUSER','GGS_GGSUSER_ROLE')
minus
select role from dba_roles;
commit;

--复核新库(目标库)中profile是否创建完整,正确结果为no rows selected
select distinct profile
from dba_profiles@dblink_migup
minus
select distinct profile from dba_profiles;
commit;

--复核新库(目标库)中context是否创建完整,正确结果为no rows selected
select namespace
from dba_context@dblink_migup
where schema in (select username

                from migupd.t_user_list t
               where flag = 'Y'
                  or flag is null)

minus
select namespace
from dba_context
where schema in (select username

                from migupd.t_user_list t
               where flag = 'Y'
                  or flag is null);

spool off;
commit;

目录
相关文章
|
7月前
|
机器学习/深度学习 API 数据安全/隐私保护
视觉智能平台常见问题之一直提示ram没有权限但是我在角色中已经有添加相应的权限如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
|
4月前
|
关系型数据库 数据库 数据安全/隐私保护
PostgreSQL基础之教你如何轻松管理用户角色与权限
PostgreSQL基础之教你如何轻松管理用户角色与权限
194 0
|
6月前
|
SQL DataWorks 数据管理
DataWorks操作报错合集之在查找支持实例错误的时候提示:无法承担用户的角色,请检查RAM角色配置,该怎么办
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
7月前
|
关系型数据库 MySQL 数据库
MySQL技能完整学习列表9、用户管理和权限控制——1、创建和管理用户——2、权限授予和撤销
MySQL技能完整学习列表9、用户管理和权限控制——1、创建和管理用户——2、权限授予和撤销
98 0
|
安全 数据库 数据安全/隐私保护
特权账号管理的重点
账号权限的最小化是目前对特权账号权限管理的主要原则之一,但在实际的工作中,通常情况下,账号权限的会因为要保障业务顺利开展而进行扩大
122 0
|
存储 网络安全 文件存储
阿里云无影云桌面服务关联角色设置与删除教程
阿里云无影云桌面服务关联角色详解(一看就懂),创建角色名称AliyunServiceRoleForGws,并赋予权限策略AliyunServiceRolePolicyForGws
阿里云无影云桌面服务关联角色设置与删除教程
|
SQL 安全 Cloud Native
用户指南—账号和安全—三权分立—权限验证
开启三权分立模式后,高权限账号自动转换为系统管理员账号,同时还需创建安全管理员账号和审计管理员账号,三个账号拥有不同的权限,当您对数据库执行不同操作时,需要对应的管理员进行权限验证。本文将介绍权限验证的相关操作步骤。
230 0
用户指南—账号和安全—三权分立—权限验证
|
人工智能 自然语言处理 达摩院
如何解决智能对话机器人主账号创建机器子账号控制台无法管理使用问题
阿里云智能对话机器人(原云小蜜),是阿里巴巴自研的新一代智能人机对话系统,适用于智能客服、智能办公助理、智能售前服务、语音对话交互等场景,能替代人工解决大部分咨询问题。产品基于达摩院核心AI能力构建,具备完善的多模态交互对话能力,企业可通过SaaS控制台可视化配置,也可通过开放API灵活集成定制。在登录RAM用户(子账号)使用主账号创建的智能对话机器人时,需要阿里云账号(主账号)对RAM账号进行相应授权。但是客户在第一次使用过程中往往对于这样的问题不知如果解决,更不懂怎么进行授权操作。本文简单介绍下如何快速解决智能对话机器人中主账号创建的机器子账号控制台无法看见使用的问题。
510 0
如何解决智能对话机器人主账号创建机器子账号控制台无法管理使用问题
|
存储 JSON 监控
在日志服务中使用权限助手进行权限配置
在使用 SLS 日志服务的时候,很多情况下,我们需要给不同子账号,角色赋予不同的权限。由于日志服务中涉及的功能模块很多,而且功能模块互相之间有依赖关系,所以手工编写 RAM 的配置文件会显得很繁琐。现在,日志服务中新上线了权限助手功能,使用这个工具可以在很大程度上简化权限配置的操作。
1646 0
在日志服务中使用权限助手进行权限配置
|
存储 安全 文件存储
企业用户多账号合并之存储迁移集中
本文介绍使用在线迁移服务,将分布在各个云账号中的对象存储、文件存储数据集中到一个 账号的对象存储或文件存储下。
企业用户多账号合并之存储迁移集中