当前位置: 数据库>sqlserver
修改sql server 2005的用户默认架构
来源: 互联网 发布时间:2014-08-29
本文导语: 本文为大家介绍SQL Server 2005数据库恢复到CC_DBO1架构同时设置默认用户为CC_DBO的完整步骤。 一、以cc_dbo1为例 二、更改拥有者 如果当前有对象属于cc_dbo1,则将其临时转到dbo; 代码如下: use test; go SELECT B.NAME,A.NAME,A.TYPE_DESC FR...
本文为大家介绍SQL Server 2005数据库恢复到CC_DBO1架构同时设置默认用户为CC_DBO的完整步骤。
一、以cc_dbo1为例
二、更改拥有者
如果当前有对象属于cc_dbo1,则将其临时转到dbo;
代码如下:
use test;
go
SELECT B.NAME,A.NAME,A.TYPE_DESC FROM SYS.OBJECTS A,SYS.SCHEMAS B WHERE A.SCHEMA_ID=B.SCHEMA_ID AND B.NAME='CC_DBO1';
select 'exec sp_changeobjectowner ''cc_dbo.'+ name + ''',''dbo'';' from sysobjects where xtype'S' ORDER BY NAME;
go
SELECT B.NAME,A.NAME,A.TYPE_DESC FROM SYS.OBJECTS A,SYS.SCHEMAS B WHERE A.SCHEMA_ID=B.SCHEMA_ID AND B.NAME='CC_DBO1';
select 'exec sp_changeobjectowner ''cc_dbo.'+ name + ''',''dbo'';' from sysobjects where xtype'S' ORDER BY NAME;
三、删除架构
代码如下:
DROP SCHEMA CC_DBO1;
四、删除用户
代码如下:
DROP USER CC_DBO1;
五、删除登录
代码如下:
USE MASTER
GO
drop login cc_dbo1;
GO
drop login cc_dbo1;
六、创建登录
代码如下:
CREATE LOGIN cc_dbo1 WITH PASSWORD = 'cc_dbo1@123' ;
GO
Exec sp_defaultdb @loginame='cc_dbo1', @defdb='test'
go
GO
Exec sp_defaultdb @loginame='cc_dbo1', @defdb='test'
go
七、创建架构
代码如下:
use test
go
create schema cc_dbo1;
go
go
create schema cc_dbo1;
go
八、创建用户
代码如下:
CREATE USER cc_dbo1 FOR LOGIN cc_dbo1 ;
go
alter user cc_dbo1 with default_schema=cc_dbo1;
go
exec sp_changedbowner 'cc_dbo1';
go
ALTER AUTHORIZATION ON SCHEMA::cc_dbo1 TO cc_dbo1;
go
alter user cc_dbo1 with default_schema=cc_dbo1;
go
exec sp_changedbowner 'cc_dbo1';
go
ALTER AUTHORIZATION ON SCHEMA::cc_dbo1 TO cc_dbo1;
九、--新开窗口cc_dbo1登陆测试
代码如下:
create table test_default_schema(a int);
go
go
十、切换回来
代码如下:
--验证生效
SELECT B.NAME,A.NAME,A.TYPE_DESC FROM SYS.OBJECTS A,SYS.SCHEMAS B
WHERE A.SCHEMA_ID=B.SCHEMA_ID AND B.NAME='CC_DBO1';
SELECT B.NAME,A.NAME,A.TYPE_DESC FROM SYS.OBJECTS A,SYS.SCHEMAS B
WHERE A.SCHEMA_ID=B.SCHEMA_ID AND B.NAME='CC_DBO1';
十一、--更改对象为cc_dbo拥有
代码如下:
select 'exec sp_changeobjectowner ''dbo.'+ name + ''',''cc_dbo1'';' from sysobjects where xtype'S' ORDER BY NAME;
十二、验证
代码如下:
SELECT B.NAME,A.NAME,A.TYPE_DESC FROM SYS.OBJECTS A,SYS.SCHEMAS B
WHERE A.SCHEMA_ID=B.SCHEMA_ID AND B.NAME='CC_DBO1';
WHERE A.SCHEMA_ID=B.SCHEMA_ID AND B.NAME='CC_DBO1';