Baza danych owner
jest trochę cofnięta do czasów, zanim (właściwy) schemat został wprowadzony w SQL Sever 2005.
Zasadniczo właścicielem bazy danych jest domyślny dbo
(właściciel bazy danych) bazy danych, a sama baza danych jest obiektem bazy danych .
Z dokumentów SQL Server 2000 ...
dbo
Jest łatwy do zrozumienia, że ma uprawnienia do wykonywania wszelkich czynności w bazie danych.
We wcześniejszych wersjach programu SQL Server, gdy schemat nie mógł „posiadać” obiektu ( a raczej należy stwierdzić, że wszystkie obiekty, tabele, widoki itp. Były własnością dbo
i nie było innych schematów ), konieczne było „użytkownik”, który jest właścicielem ... powinno być oczywiste, dlaczego coś musi być właścicielem bazy danych (w przeciwnym razie uprawnienia byłyby raczej trudne).
Tak więc technicznie w starszych wersjach programu SQL Server (lub uaktualnionych bazach danych) nie była to tabela „Foo”, ale była to tabela „dbo.Foo”… z tym, dbo
że jest właścicielem.
Wraz z nadejściem SQL Server 2005 mogłeś mieć obiekty bazy danych będące własnością schematu, takie jak powiedzmy, że masz schemat o nazwie „bar” i tabela o nazwie „Foo” ... to staje się bar.Foo
jak w ...
SELECT * FROM bar.Foo WHERE etc = 'blah`;
Problem polega na tym, że użytkownik tworzący bazę danych jest automatycznie ustawiany jako właściciel, co prowadzi do problemów z rotacją pracowników itp.
Dlatego najlepszą praktyką jest zmiana tego na sa
konto, a może (z mojego doświadczenia) na konto domeny, którym może zarządzać zespół operacyjny / IT organizacji.
W tym artykule przedstawiono różnicę między starszym sposobem robienia rzeczy przez „właściciela” a nowszym systemem własności opartym na schemacie.
Aby zrozumieć różnicę między właścicielami a schematem, poświęćmy trochę czasu na sprawdzenie własności obiektu. Gdy obiekt jest tworzony w SQL Server 2000 lub wcześniejszym, obiekt musi mieć właściciela. Przez większość czasu właścicielem jest „dbo”, znany również jako właściciel bazy danych.