sys.sp_changeobjectowner (Transact-SQL)

Van toepassing op:SQL Server

Verandert de eigenaar van een object in de huidige database.

Important

Deze opgeslagen procedure werkt alleen met de objecten die beschikbaar zijn in SQL Server 2000 (8.x). Deze functie wordt verwijderd in een toekomstige versie van SQL Server. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie. Gebruik ALTER SCHEMA of ALTER AUTHORIZATION in plaats daarvan. sp_changeobjectowner verandert zowel het schema als de eigenaar. Om compatibiliteit met eerdere versies van SQL Server te behouden, zal deze opgeslagen procedure alleen van objecteigenaar veranderen wanneer zowel de huidige eigenaar als de nieuwe eigenaar schema's bezitten die dezelfde naam hebben als hun databasegebruikersnamen.

Transact-SQL syntaxis-conventies

Syntax

sys.sp_changeobjectowner
    [ @objname = ] N'objname'
    , [ @newowner = ] N'newowner'
[ ; ]

Arguments

[ @objname = ] N'objname'

@objname is nvarchar(776), zonder standaard.

De naam van een bestaande tabel, weergave, door de gebruiker gedefinieerde functie of opgeslagen procedure in de huidige database. @objname is een nvarchar(776), zonder standaard. @objname kan worden gekwalificeerd met de eigenaar van het bestaande object, in de vorm <existing_owner>.<object_name> als het schema en de eigenaar dezelfde naam hebben.

[ @newowner = ] Nieuwe eigenaar'

De naam van het beveiligingsaccount dat de nieuwe eigenaar van het object zal zijn. @newowner is een systeemnaam, zonder standaard. @newowner moet een geldige databasegebruiker, serverrol, Windows gebruiker of Windows groep zijn met toegang tot de huidige database. Als de nieuwe eigenaar een Windows-gebruiker is of een Windows-groep waarvoor geen overeenkomstig database-niveau principe is, wordt er een databasegebruiker aangemaakt.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Remarks

sp_changeobjectowner verwijdert alle bestaande rechten van het object. Je zult alle rechten die je wilt behouden opnieuw moeten toepassen nadat je hebt gestart sp_changeobjectowner. Daarom raden we aan om bestaande rechten uit te schrijven voordat je .sp_changeobjectowner Nadat het eigendom van het object is gewijzigd, kun je het script gebruiken om de rechten opnieuw toe te passen. Je moet de objecteigenaar aanpassen in het permissiescript voordat je het uitvoert.

Om de eigenaar van een zekere zaak te veranderen, gebruik ALTER AUTHORIZATION. Om een schema te veranderen, gebruik ALTER SCHEMA.

Permissions

Vereist lidmaatschap van de db_owner vaste databaserol, of lidmaatschap van zowel de db_ddladmin vaste databaserol als de db_securityadmin vaste databaserol, en ook CONTROL toestemming voor het object.

Examples

Het volgende voorbeeld verandert de eigenaar van de authors tabel in Corporate\GeorgeW.

EXECUTE sp_changeobjectowner 'authors', 'Corporate\GeorgeW';
GO