오브젝트의 소유자 변경하기 > 기술자료 | 해피정닷컴

오브젝트의 소유자 변경하기 > 기술자료

본문 바로가기

사이트 내 전체검색

오브젝트의 소유자 변경하기 > 기술자료

MSSQL 오브젝트의 소유자 변경하기

페이지 정보


본문

SQL Server 2000 이전 버전에서는 오브젝트의 소유자를 변경하기 위해서 sp_changeobjectowner 시스템 저장 프로시저를 사용한다. 하지만, SQL Server 2005에 이르러서는 sp_changeobjectowner 시스템 저장 프로시저를 대신하여 ALTER AUTHORIZATION... 구문을 통해 오브젝트의 소유자를 변경할 수 있게 되었다.

1. SQL Server 2000 이전 버전에서

구문
sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner'
인수
인수 데이터 형식 설명
[ @objname = ] 'object' VARCHAR(776) 현재 데이터베이스의 기존 오브젝트 명이다.
오브젝트에서 테이블, 뷰, 사용자 정의 함수 또는 저장 프로시저가 될 수 있다.
기본값은 없다.
스키마와 스키마 소유자가 동일한 이름을 갖고 있는 경우 objectexisting_owner.object 의 형태로 기존 개체의 소유자를 명시해야 한다.
[ @newowner=] 'owner ' SYSNAME 개체의 새 소유자가 될 보안 계정의 이름이다.
기본값은 없다.
owner는 유효한 데이터베이스 사용자, 서버 역할, Microsoft Windows 로그인 또는 현재 데이터베이스에 액세스할 수 있는 Windows 그룹이어야 한다.
새 소유자가 해당하는 데이터베이스 수준의 보안 주체가 없는 Windows 사용자 또는 Windows 그룹이면 데이터베이스 사용자가 생성된다.

실행 예

계정사용자 아이디로 된 것을 dbo로 변경 하시려면 아래 쿼리를 날려준 후에 결과물을 복사하여 실행select 'exec sp_changeobjectowner ''기존소유자.' + name + ''', ''dbo'''
from sysobjects where xtype = 'U'

다음 예는 author 테이블의 소유자 를 testuser1에서 testuser2로 변경한다.
USE PUBS
GO

EXEC sp_changeobjectowner 'testuser1.author','testuser2'
GO


2. SQL Server 2005 이후 버전에서

구문
ALTER AUTHORIZATION
ON [ :: ] entity_name
TO { SCHEMA OWNER | principal_name }

::=
{
Object | Type | XML Schema Collection
| Fulltext Catalog | Fulltext Stoplist | Schema
| Assembly | Role | Message Type | Contract | Service
| Remote Service Binding | Route | Symmetric Key | Endpoint
| Certificate | Database
}


인수
인수 설명
:: 소유자가 변경될 엔터티의 클래스
Object가 기본값이다.
entity_name 엔터티의 이름
principal_name 엔터티를 소유하게 될 보안 주체의 이름


주의사항
  • 데이터베이스 수준 엔터티의 소유권은 데이터베이스 수준의 모든 보안 주체에게 이전할 수 있다.
  • 서버 수준 엔터티의 소유권은 서버 수준 보안 주체에게만 이전할 수 있다.
  • SQL Server 2005부터 사용자는 다른 데이터베이스 사용자가 소유한 스키마에 포함된 OBJECT 또는 TYPE을 소유할 수 있다.
  • SCHEMA OWNER 옵션은 스키마 수준 엔터티의 소유권을 이전하는 경우에만 유효하다.
  • SCHEMA OWNER는 엔터티의 소유권을 엔터티가 속한 스키마의 소유자에게 이전한다.
  • 스키마 수준 엔터티는 OBJECT, TYPE 또는 XML SCHEMA COLLECTION 클래스뿐이다.

    이전 가능한 엔티티
  • "object" 형식의 스키마 수준 엔터티인 테이블, 뷰, 함수, 프로시저, 큐 및 동의어 엔터티

    이전 불가능한 엔티티
  • 연결된 서버, 통계, 제약 조건, 규칙, 기본값, 트리거, Service Broker 큐, 자격 증명,
  • 파티션 함수, 파티션 구성표, 데이터베이스 마스터 키, 서비스 마스터 키 및 이벤트 알림 엔터티
  • 서버, 로그인, 사용자, 응용 프로그램 역할 및 열 보안 개체 클래스의 멤버 소유권

    실행 예

    (1). 테이블의 소유권 이전
    다음 예에서는 Sprockets 테이블의 소유권을 MichikoOsada 사용자에게 이전합니다. 테이블은 Parts 스키마 내부에 있습니다.
    ALTER AUTHORIZATION ON OBJECT::Parts.Sprockets TO MichikoOsada; GO

    쿼리가 다음과 같을 수도 있습니다.
    ALTER AUTHORIZATION ON Parts.Sprockets TO MichikoOsada; GO

    (2). 뷰 소유권을 스키마 소유자에게 이전
    다음 예에서는 ProductionView06 뷰의 소유권을 뷰가 포함된 스키마의 소유자에게 이전합니다. 뷰는 Production 스키마 내부에 있습니다.
    ALTER AUTHORIZATION ON OBJECT::Production.ProductionView06 TO SCHEMA OWNER;
    GO

    (3). 스키마의 소유권을 사용자에게 이전
    다음 예에서는 SeattleProduction11 스키마의 소유권을 SandraAlayo 사용자에게 이전합니다.
    ALTER AUTHORIZATION ON SCHEMA::SeattleProduction11 TO SandraAlayo;
    GO

    (4). 끝점의 소유권을 SQL Server 로그인에게 이전
    다음 예에서는 CantabSalesServer1 끝점의 소유권을 JaePak에게 이전합니다. 끝점은 서버 수준의 보안 개체이므로 서버 수준 보안 주체에게만 소유권을 이전할 수 있습니다.
    ALTER AUTHORIZATION ON ENDPOINT::CantabSalesServer1 TO JaePak


    참고자료
    http://blog.naver.com/wing3a07?Redirect=Log&logNo=100061342319 
    http://technet.microsoft.com/ko-kr/library/ms177519(SQL.90).aspx  < SQL 2000 > 
    http://technet.microsoft.com/ko-kr/library/ms187359(SQL.90).aspx  < SQL 2005 / 2008 > 
    http://www.microsoft.com/korea/technet/sql/tuning_guide_developer01.mspx#EEAA09

댓글목록

등록된 댓글이 없습니다.


Total 74건 3 페이지
  • RSS
기술자료 목록
34
MSSQL   25753  2010-09-01 16:11 ~ 2020-03-11 09:55  
33
MSSQL   15144  2010-08-05 08:11  
32
MSSQL   18662  2010-08-05 04:21  
31
MSSQL   21890  2010-04-26 22:35  
30
MSSQL   15766  2010-04-07 14:01 ~ 2017-09-22 00:00  
29
MSSQL   17631  2010-04-03 17:25  
28
MSSQL   14234  2010-01-15 11:47  
27
MSSQL   15059  2009-11-11 19:46  
열람
MSSQL   18727  2009-09-25 06:08  
25
MSSQL   35052  2009-09-24 22:49  
24
MSSQL   21002  2009-09-24 20:55 ~ 2017-02-15 00:00  
23
MSSQL   15291  2009-09-24 20:03  
22
MSSQL   42241  2009-07-27 07:33  
21
MSSQL   40870  2009-07-27 07:28  
20
MSSQL   17519  2009-07-22 18:52  
19
MSSQL   17735  2009-06-22 10:25  
18
MSSQL   21513  2009-06-16 03:24 ~ 2017-04-02 00:00  
17
MSSQL   16542  2009-05-08 09:43  
16
MSSQL   18299  2009-05-08 08:28  
15
MSSQL   20955  2009-01-28 03:15  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.