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

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

본문 바로가기

사이트 내 전체검색

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

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 2,634건 92 페이지
  • RSS
기술자료 목록
814
PHP   23352  2009-10-21 19:46 ~ 2009-10-21 00:00  
813
일반   11507  2009-10-19 14:26  
812
그누보드   13057  2009-10-17 06:08  
811
JavaScript   37839  2009-10-17 04:16  
810
PHP   15743  2009-10-14 11:12  
809
일반   12775  2009-10-12 18:44  
808
일반   14318  2009-10-10 19:52  
807
PHP   17447  2009-10-10 10:00 ~ 2017-05-19 00:00  
806
JavaScript   16943  2009-10-10 09:48 ~ 2013-10-21 00:00  
805
ClassicASP   17505  2009-10-08 23:12  
804
HTML   19479  2009-10-08 12:07 ~ 2021-11-09 15:48  
803
Adobe   24573  2009-10-07 14:51  
802
그누보드   12015  2009-10-07 18:55 ~ 2009-10-08 00:00  
801
그누보드   17785  2009-10-07 03:36  
800
일반   12432  2009-10-05 15:11  
799
ClassicASP   23029  2009-09-30 14:51 ~ 2010-04-24 00:00  
798
일반   19671  2009-09-29 04:05  
열람
MSSQL   18763  2009-09-25 06:08  
796
MSSQL   35174  2009-09-24 22:49  
795
MSSQL   21061  2009-09-24 20:55 ~ 2017-02-15 00:00  

검색

해피정닷컴 정보

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

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