Identyfikatory SID i identyfikatory
Jeśli jesteś pisania kodu, który współdziała z SQL Server silnika, należy pamiętać o dwóch liczb, które są używane jako wewnętrzne reprezentacje głównego zobowiązanego.Każdy podmiot ma identyfikator i identyfikator zabezpieczeń (SID).Znaczenie i źródło tych numerów zależą od tworzenia kapitału i czy jest obiektem serwera głównej bazy danych.
Numer identyfikacyjny poziom serwera
Gdy SQL Server logowania jest tworzony, przypisano identyfikator i identyfikator SID.Są one widoczne w sys.server_principals Widok wykazu jako principal_id i SID.Identyfikator (principal_id) identyfikuje Logowanie jako zabezpieczany w obrębie serwera.Jest przypisywana przez SQL Server podczas tworzenia logowania.Usunięcie identyfikatora logowania numeru Identyfikacyjnego zostanie odtworzony.Identyfikator SID identyfikuje kontekstu zabezpieczeń logowania i jest unikatowe wystąpienie serwera.źródło Identyfikatora SID zależy sposób tworzenia logowania.Jeśli logowania jest tworzona z systemu Windows użytkownika lub grupy, jest podany identyfikator SID Windows źródło głównych; Identyfikator SID systemu Windows jest unikatowy w obrębie domena.Jeśli SQL Server logowania jest tworzony z certyfikat lub klucz asymetrycznego, jest przypisany identyfikator SID pochodną mieszania SHA-1 klucz publicznego.Jeśli identyfikator logowania jest tworzona jako styl starszych SQL Server logowania, który wymaga hasła, serwer generuje identyfikator SID.
Numer identyfikacyjny poziom bazy danych
Po utworzeniu bazy danych użytkownik jest przypisany identyfikator i identyfikator zabezpieczeń (SID).Numery te są widoczne w sys.database_principals Widok wykazu jako principal_id i SID.Identyfikator identyfikuje użytkownika jako zabezpieczany wewnątrz bazy danych.Po usunięciu użytkownika bazy danych jego identyfikator zostanie odtworzony.Identyfikator SID przypisany do bazy danych użytkownika jest unikatowa w bazie danych.źródło Identyfikatora SID zależy sposób tworzenia użytkowników bazy danych.Jeśli użytkownik jest tworzona z SQL Server logowania, jest to identyfikator SID logowania.Jeśli użytkownik jest tworzona z certyfikat lub klucz asymetrycznego, identyfikator SID jest pochodną mieszania SHA-1 klucz publicznego.
Maksymalna liczba użytkowników bazy danych
Maksymalna liczba użytkowników bazy danych jest określony przez rozmiar pole Identyfikator użytkownika.Wartość Identyfikatora użytkownika musi być zero lub dodatnią liczbą całkowitą.W SQL Server 2000, przechowywane jako identyfikator użytkownika smallint składający się z 16 bitów, z których jeden jest znak.Z tego powodu maksymalna liczba identyfikatorów użytkownika w SQL Server 2000 jest 215 = 32768.W SQL Server 2005 i nowsze wersje, identyfikator użytkownika jest przechowywana jako int składający się z 32 bitów, z których jeden jest znak.Te dodatkowe bity należy przypisać 231 = 2,147,483,648 numery identyfikatorów.
Identyfikatory użytkowników bazy danych są podzielone na przydzielonych wstępnie zakresów, jak pokazano w poniższej tabela.
Identyfikator programu SQL Server 2000 |
Identyfikator programu SQL Server 2005 |
Przydzielone |
---|---|---|
0 |
0 |
public |
1 |
1 |
dbo |
2 |
2 |
guest |
3 |
3 |
INFORMATION_SCHEMA |
4 |
4 |
SYSTEM_FUNCTION_SCHEMA |
5 - 16383 |
5 - 16383 |
Użytkownicy, aliasy, ról aplikacji |
16384 |
16384 |
db_owner |
16385 |
16385 |
db_accessadmin |
16386 |
16386 |
db_securityadmin |
16387 |
16387 |
db_ddladmin |
16389 |
16389 |
db_backupoperator |
16390 |
16390 |
db_datareader |
16391 |
16391 |
db_datawriter |
16392 |
16392 |
db_denydatareader |
16393 |
16393 |
db_denydatawriter |
16394 - 16399 |
16394 - 16399 |
Zarezerwowane |
16400 - 32767 |
Role |
|
16400 - 2,147,483,647 |
Użytkownicy, role, role aplikacji, aliasy |
Rozmiar Identyfikatora użytkownika jest wzrosła z smallint (16 bitów) do int (32 bity).API, wymagających użytkownika 16-bitowy identyfikator będą zwracały nieprawidłowe wyniki, jeżeli nie przekazano użytkownika 32-bitowy identyfikator.Podczas migrowania danych i aplikacje utworzone dla SQL Server 2000 lub starszym, należy przejrzeć kod odwołania do następujących interfejsów zaniechane.
sysusers
syscacheobjects
sysmembers
sysobjects
syspermissions
sysprocesses
sysprotects
systypes
USER_ID
Te interfejsy wymagają identyfikatory użytkowników 16-bitowych.Nie zwracają one poprawne wyniki z nazwy użytkownika 32-bitowych.
Zobacz także