日期:2014-05-18  浏览次数:20528 次

创建出的表、视图的 OWNER 不是本用户
用一个用户 test 登录SQL SERVER,结果创建的表、视图的 OWNER 都是 dbo,而不是本来的用户名test。
可能是设置被动过了。
但不知道动了哪里。
请问如何设置,使所创建的表、视图的 OWNER 都是本用户 test ?

------解决方案--------------------
SQL code

use master

create database AP  -- 建测试数据库 AP

-- 新建登录 test
CREATE LOGIN test WITH PASSWORD=N'123456', CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF

USE AP  -- 打开数据库

CREATE USER test FOR LOGIN test WITH DEFAULT_SCHEMA=test  -- 新建用户test

CREATE SCHEMA test AUTHORIZATION test -- 新建架构 test

EXEC sp_addrolemember N'db_owner', N'test'  -- 赋予dbowner角色

--用test登录数据库
--begin--
 use AP
 create table tab (ID int) -- 新建测试表 tab
--end--

select user_name(uid) 'User Name',name 'Table Name',crdate 
from AP.dbo.sysobjects where xtype='U' and name='tab'

结果
User Name     Table Name     crdate
------------------------------------------------------
  test           tab             2010-12-27 18:40:46.737