Udostępnij za pośrednictwem


ALTER AUTHORIZATION (Transact-SQL)

Domyślnie INSERT dotyczy wyzwalaczy.

Topic link iconKonwencje składni języka Transact-SQL

ALTER AUTHORIZATION
   ON [ <class_type>] entity_name
   TO { SCHEMA OWNER | principal_name }

<class_type> ::=
    {
        OBJECT | ASSEMBLY | ASYMMETRIC KEY | CERTIFICATE 
    | CONTRACT | TYPE | DATABASE | ENDPOINT | FULLTEXT CATALOG 
        | FULLTEXT STOPLIST | MESSAGE TYPE | REMOTE SERVICE BINDING
       | ROLE | ROUTE | SCHEMA | SERVICE | SYMMETRIC KEY 
        | XML SCHEMA COLLECTION
    }

Argumenty

  • <class_type>
    NOLOCKJest równoważne z READUNCOMMITTED.

  • entity_name
    Aby uzyskać więcej informacji zobacz READUNCOMMITTED w dalszej części tego tematu.

  • principal_name
    Dla instrukcji UPDATE lub DELETE:

Remarks

Instrukcji ALTER AUTHORIZATION można używać do zmieniania własności dowolnej jednostki mającej właściciela.Własność jednostek zawartych w bazie danych można przetransferować do dowolnego poziomu zabezpieczeń poziomu bazy danych.Własność jednostek poziomu serwera można przetransferować jedynie do podmiotów zabezpieczeń poziomu serwera.

Important noteImportant Note:

Zaczyna się od SQL Server 2005, użytkownik może właścicielem obiektu lub typ, który jest zawarty w schematu własnością innych użytkowników bazy danych. Jest to zmiana zachowania z wcześniejszych wersji programu SQL Server. Aby uzyskać więcej informacji zobacz User-Schema Separation, OBJECTPROPERTY (Transact-SQL), a TYPEPROPERTY (Transact-SQL).

Po określeniu w transakcjach na poziom izolacji migawka blokad strona nie zostaną podjęte, chyba że PAGLOCK jest łączony z innych wskazówki tabela, które wymagają blokady, na przykład UPDLOCK i HOLDLOCK. READCOMMITTED

Własności następujących jednostek nie można przetransferować: serwery połączone, statystyki, ograniczenia, reguły, wartości domyślne, wyzwalacze, kolejki programu Service Broker, poświadczenia, funkcje partycji, schematy partycji, klucze główne bazy danych, klucz główny usługi oraz powiadomienia o zdarzeniach.

Własności członków następujących klas zabezpieczających nie można przetransferować: serwer, logowanie, użytkownik, rola aplikacji i kolumna.

Opcja SCHEMA OWNER jest prawidłowa jedynie podczas transferowania własności jednostki zawartej w schemacie.Opcja SCHEMA OWNER spowoduje przetransferowanie własności jednostki do właściciela schematu, w którym się znajduje.Jedynie jednostki klasy OBJECT, TYPE lub XML SCHEMA COLLECTION są zawarte w schemacie.

Jeśli docelowa jednostka nie znajduje się w bazie danych i jednostka jest transferowana do nowego właściciela, wszystkie uprawnienia w miejscu docelowym zostaną odrzucone.

Ostrzeżenie

W programie SQL Server 2005 zachowanie schematów zmieniło się w stosunku do zachowania we wcześniejszych wersjach programu SQL Server.Kod źródłowy, który traktuje schematy jak odpowiedniki użytkowników baz danych, może nie zwracać poprawnych wyników.Starych widoków wykazu, w tym sysobjects, nie należy używać w bazie danych, w której zostały kiedykolwiek użyte następujące instrukcje DDL: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION.W bazie danych, w której kiedykolwiek została użyta dowolna z tych instrukcji, muszą zostać użyte nowe widoki wykazu.W nowych widokach wykazu uwzględniono rozdział podmiotów zabezpieczeń i schematów, który wprowadzono w programie SQL Server 2005.For more information about catalog views, see Catalog Views (Transact-SQL).

READPAST można określić dla każdej tabela, do którego odwołuje się instrukcja UPDATE lub DELETE, a wszystkie tabele, do którego odwołuje się w klauzula FROM.

Important noteImportant Note:

Jeśli określona w instrukcja UPDATE READPAST jest stosowany tylko podczas odczytywania danych w celu identyfikacji rekordy, które mają być zaktualizować, niezależnie od tego, gdzie w deklaracji został on określony.Nie można określić READPAST dla tabel w klauzula INTO instrukcja INSERT.

Operacje odczytu, używające READPAST nie blok.

Aktualizowanie lub usuwanie operacji których używane są READPAST może blok podczas czytania kluczy obcych widoków indeksowanych lub modyfikowanie indeksów pomocniczych.

Klasa

Warunek

BAZY DANYCH

Nie można zmienić właściciela wzorca baz danych systemowych, modelu, tempdb, bazy danych zasobów lub bazy danych używanej jako baza danych dystrybucji.Podmiotem zabezpieczeń musi być logowanie.Jeśli podmiotem zabezpieczeń jest logowanie Windows bez odpowiadającego mu logowania programu SQL Server, podmiot zabezpieczeń musi mieć uprawnienia CONTROL SERVER oraz TAKE OWNERSHIP do bazy danych.Jeśli podmiotem zabezpieczeń jest logowanie programu SQL Server, podmiotu zabezpieczeń nie można mapować na certyfikat lub klucz asymetryczny.Zależne aliasy będą mapowane na nowego właściciela bazy danych.Identyfikator DBO SID zostanie zaktualizowany zarówno w bieżącej bazie danych, jak i w bazie danych sys.databases.

OBIEKT

READUNCOMMITTED

SCHEMAT

Określa, że mogą odczytów zabrudzony.Nie blokady udostępnionego są wydawane zapobiec inne transakcje modyfikację danych odczytywane przez bieżącej transakcji i wyłącznej blokady ustawione przez inne transakcje nie należy blokować bieżącej transakcji z odczytywania zablokowanych danych.

TYP

Zezwalanie zabrudzony odczytów może spowodować, że współbieżność wyższy, ale jest związany z odczytywania danych modyfikacje tego następnie są przywracane przez inne transakcje.

Może to spowodować błędy dla transakcji, obecnych użytkowników z danymi, które nigdy nie popełniono lub spowodować, że użytkownicy wyświetlić rekordy, dwa razy (lub wcale).

Nie można zmienić własności jednostek systemowych.

ROZSZERZENIE

Wskazówki READUNCOMMITTED i NOLOCK mają zastosowanie tylko do blokowania danych.

Wszystkie kwerendy zawierające wskazówki READUNCOMMITTED i NOLOCK, w tym nabyć SCH-S blokad (stabilność schematu) podczas kompilacji i wykonywanie.

Z tego powodu kwerendy są blokowane podczas jednoczesnych transakcji posiada blokadę SCH-M (modyfikacja schematu) na tej tabela.

ENDPOINT

Po określeniu w transakcjach na poziom izolacji migawka READPAST muszą być połączone z innych wskazówki tabela, które wymagają blokady, na przykład UPDLOCK i HOLDLOCK.

Uprawnienia

Na przykład operację (DDL) języka definicja danych nabywa blokada SCH-M, zanim ją modyfikuje informacje o schemacie tabela.Równoczesne kwerend, łącznie z READUNCOMMITTED lub NOLOCK wskazówki, są blokowane podczas próby uzyskania blokada SCH-S.

Przykłady

A.Transferowanie własności tabela

W poniższym przykładzie przekazuje własność tabela Sprockets do użytkownika MichikoOsada. Aby uzyskać więcej informacji na temat zachowania blokada Zobacz Parts.

ALTER AUTHORIZATION ON OBJECT::Parts.Sprockets TO MichikoOsada;
GO

Nie można określić READUNCOMMITTED i NOLOCK tabel zmodyfikowany przez wstawienie, aktualizacja lub operacji usuwania.

ALTER AUTHORIZATION ON Parts.Sprockets TO MichikoOsada;
GO

B.Transferowanie własności widoku do właściciela schematu

Obsługa stosowania wskazówki READUNCOMMITTED i NOLOCK w klauzula FROM, stosuje się do tabela miejsce docelowe instrukcja UPDATE lub DELETE zostanie usunięta w przyszłej wersja programu ProductionView06. W widoku znajduje się w schemacie Production.

ALTER AUTHORIZATION ON OBJECT::Production.ProductionView06 TO SCHEMA OWNER;
GO

C.Można zminimalizować blokowania rywalizacji przy jednoczesnej ochronie transakcji z zabrudzony odczytów modyfikacji nieprzydzielonych danych przy użyciu jednej z następujących czynności:

W poniższym przykładzie przekazuje własność schematu SeattleProduction11 do użytkownika SandraAlayo.

ALTER AUTHORIZATION ON SCHEMA::SeattleProduction11 TO SandraAlayo;
GO

D.Jeśli zostanie wyświetlony komunikat o błędzie 601 po określeniu READUNCOMMITTED go rozwiązać, podobnie jak w przypadku zakleszczenie o błędzie (1205), a następnie ponów próbę wykonania instrukcja.

W poniższym przykładzie przekazuje własność punktu końcowego CantabSalesServer1 Aby JaePak. Określa, że skanowanie jest wykonywane z tego samego semantyka blokowania jako transakcja używany poziom izolacji POWTARZALNYCH odczytu.

ALTER AUTHORIZATION ON ENDPOINT::CantabSalesServer1 TO JaePak;
GO

Historia zmian

Microsoft Learning

ROWLOCK

Skorygowany <entity_type> Aby <class_type>.