Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Tworzy dane logowania dla baz danych SQL Server, Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics lub Analytics Platform System. Wybierz jedną z poniższych kart składni, argumentów, uwag, uprawnień i przykładów dla określonej wersji.
Create LOGIN uczestniczy w transakcjach. Jeśli polecenie CREATE LOGIN jest wykonywane w ramach transakcji, a transakcja zostanie wycofana, tworzenie logowania zostanie wycofane. Jeśli jest wykonywane w ramach transakcji, utworzone logowanie nie może być używane do momentu zatwierdzenia transakcji.
Uwaga / Notatka
Microsoft Entra ID był wcześniej znany jako Azure Active Directory (Azure AD).
Aby uzyskać więcej informacji na temat konwencji składni, zobacz Transact-SQL konwencje składni.
Wybieranie produktu
W poniższym wierszu wybierz nazwę produktu, którą cię interesuje, i zostanie wyświetlona tylko informacja o tym produkcie.
* SQL Server *
Azure Synapse
analizy
SQL Server
Składnia
-- Syntax for SQL Server
CREATE LOGIN login_name { WITH <option_list1> | FROM <sources> }
<option_list1> ::=
PASSWORD = { 'password' | hashed_password HASHED } [ MUST_CHANGE ]
[ , <option_list2> [ ,... ] ]
<option_list2> ::=
SID = sid
| DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
| CHECK_EXPIRATION = { ON | OFF}
| CHECK_POLICY = { ON | OFF}
| CREDENTIAL = credential_name
<sources> ::=
WINDOWS [ WITH <windows_options>[ ,... ] ]
| EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid']
| CERTIFICATE certname
| ASYMMETRIC KEY asym_key_name
<windows_options> ::=
DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
Argumenty (w programowaniu)
login_name
Określa nazwę utworzonego identyfikatora logowania. Istnieją pięć typów identyfikatorów logowania: identyfikatory logowania programu SQL Server, identyfikatory logowania systemu Windows, identyfikatory logowania firmy Microsoft Entra, identyfikatory logowania mapowane za pomocą certyfikatu i logowania mapowane przy użyciu klucza asymetrycznego.
Podczas tworzenia identyfikatorów logowania mapowanych z konta domeny systemu Windows należy użyć nazwy logowania w formacie [<domainName>\<login_name>]. Nie można użyć nazwy UPN w formacie login_name@DomainName. Przykład można znaleźć w przykładzie E w dalszej części tego artykułu. Identyfikatory logowania uwierzytelniania są typu sysname i muszą być zgodne z regułami identyfikatorów i nie mogą zawierać ukośnika odwrotnego (). Identyfikatory logowania systemu Windows mogą zawierać element "\". Identyfikatory logowania oparte na użytkownikach usługi Active Directory są ograniczone do nazw mniejszych niż 21 znaków.
W przypadku używania klauzuli FROM EXTERNAL PROVIDER nazwa logowania musi być zgodna z nazwą wyświetlaną istniejącego podmiotu zabezpieczeń firmy Microsoft w tej samej dzierżawie, do którego jest włączone wystąpienie SQL. Użytkownicy, grupy i aplikacje firmy Microsoft Entra mogą służyć do tworzenia identyfikatorów logowania.
PASSWORD ='password'
Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa hasło do tworzonego identyfikatora logowania. Użyj silnego hasła. Aby uzyskać więcej informacji, zobacz Silne hasła i Zasady haseł.
Począwszy od programu SQL Server 2012 (11.x), program SQL Server i usługa Azure SQL DB używał skrótu SHA-512 w połączeniu z 32-bitową i unikatową solą. Ta metoda uczyniła ją statystycznie niewykonalną dla osób atakujących w celu wyłudzenia haseł.
Program SQL Server 2025 (17.x) w wersji zapoznawczej wprowadza algorytm iteracji skrótu, RFC2898, znany również jako funkcja wyprowadzania kluczy opartych na hasłach (PBKDF). Ten algorytm nadal używa algorytmu SHA-512, ale skróty hasła wielokrotnie (100 000 iteracji), znacznie spowalniając ataki siłowe. Ta zmiana zwiększa ochronę haseł w odpowiedzi na zmieniające się zagrożenia bezpieczeństwa i pomaga klientom przestrzegać wytycznych NIST SP 800-63b.
W hasłach jest rozróżniana wielkość liter. Hasła powinny mieć długość co najmniej ośmiu znaków i nie mogą przekraczać 128 znaków. Hasła mogą zawierać znaki a-z, A-Z, 0-9 i większość znaków niealfanumerycznych. Hasła nie mogą zawierać pojedynczych cudzysłowów ani login_name.
HASŁO = hashed_password
Dotyczy tylko słowa kluczowego HASHED. Określa wartość skrótu hasła dla tworzonego identyfikatora logowania.
MIESZANY
Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa, że hasło wprowadzone po argumencie PASSWORD jest już skrótem. Jeśli ta opcja nie zostanie wybrana, ciąg wprowadzony jako hasło zostanie skrócony przed zapisaniem go w bazie danych. Ta opcja powinna być używana tylko do migrowania baz danych z jednego serwera do innego. Nie używaj opcji HASHED, aby utworzyć nowe identyfikatory logowania. Opcji HASHED nie można używać z skrótami utworzonymi przez program SQL 7 lub starszym.
MUST_CHANGE
Dotyczy tylko identyfikatorów logowania programu SQL Server. Jeśli ta opcja jest dołączona, program SQL Server monituje użytkownika o nowe hasło przy pierwszym użyciu nowego logowania.
CREDENTIAL =credential_name
Nazwa poświadczenia, które ma zostać zamapowane na nowe logowanie do programu SQL Server. Poświadczenia muszą już istnieć na serwerze. Obecnie ta opcja łączy poświadczenia tylko z identyfikatorem logowania. Nie można zamapować poświadczenia na identyfikator logowania administratora systemu (sa).
SID = sid
Służy do ponownego tworzenia identyfikatora logowania. Dotyczy tylko identyfikatorów logowania uwierzytelniania programu SQL Server, a nie identyfikatorów logowania uwierzytelniania systemu Windows. Określa identyfikator SID nowego logowania uwierzytelniania programu SQL Server. Jeśli ta opcja nie jest używana, program SQL Server automatycznie przypisuje identyfikator SID. Struktura identyfikatora SID zależy od wersji programu SQL Server. Identyfikator SID logowania programu SQL Server: wartość literału 16 bajtów (binary(16)) na podstawie identyfikatora GUID. Na przykład SID = 0x14585E90117152449347750164BA00A7
.
DEFAULT_DATABASE =baza danych
Określa domyślną bazę danych, która ma być przypisana do logowania. Jeśli ta opcja nie jest dołączona, domyślna baza danych jest ustawiona na master
wartość .
DEFAULT_LANGUAGE =language
Określa domyślny język, który ma zostać przypisany do logowania. Jeśli ta opcja nie jest dołączona, domyślny język jest ustawiony na bieżący język domyślny serwera. Jeśli domyślny język serwera zostanie później zmieniony, domyślny język logowania pozostanie niezmieniony.
CHECK_EXPIRATION = { ON | WYŁ. }
Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa, czy zasady wygasania haseł powinny być wymuszane podczas tego logowania. Wartość domyślna to OFF.
CHECK_POLICY = { ON | WYŁ. }
Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa, że zasady haseł systemu Windows komputera, na którym działa program SQL Server, powinny być wymuszane na tym logowaniu. Wartość domyślna to WŁĄCZONE.
Jeśli zasady systemu Windows wymagają silnych haseł, hasła muszą zawierać co najmniej trzy z następujących czterech cech:
- Wielkie litery (A-Z).
- Małe litery (a-z).
- Cyfra (0–9).
- Jeden z znaków nieliczbowych, takich jak spacja, _, @, @, *, ^, %, !, $, #lub &.
Okna
Określa, że nazwa logowania ma być mapowana na dane logowania systemu Windows.
OD DOSTAWCY ZEWNĘTRZNEGO
Określa, że nazwa logowania jest mapowana na podmiot zabezpieczeń firmy Microsoft. Ta opcja jest dostępna dla programu SQL Server 2022 z obsługą usługi Arc i nowszych wersji. Aby uzyskać więcej informacji, zobacz Microsoft Entra authentication for SQL Server (Uwierzytelnianie entra firmy Microsoft dla programu SQL Server)
WITH OBJECT_ID = "objectid"
Dotyczy: SQL Server 2025 (17.x) Preview i nowsze
Określa identyfikator obiektu Entra firmy Microsoft. Aby uzyskać więcej informacji na temat korzystania z opcji WITH OBJECT_ID
, zobacz logowania firmy Microsoft Entra i użytkowników z nazwami wyświetlanymi bez nazw.
Nazwa certyfikatu
Określa nazwę certyfikatu, który ma być skojarzony z tym identyfikatorem logowania. Ten certyfikat musi już występować w master
bazie danych.
ASYM_KEY_NAME KLUCZA ASYMETRYCZNEGO
Określa nazwę klucza asymetrycznego, który ma być skojarzony z tym identyfikatorem logowania. Ten klucz musi już występować w master
bazie danych.
Uwagi
- W hasłach jest rozróżniana wielkość liter.
- Wstępne tworzenie haseł jest obsługiwane tylko podczas tworzenia identyfikatorów logowania programu SQL Server.
- W przypadku
MUST_CHANGE
określenia parametru CHECK_EXPIRATION i CHECK_POLICY należy ustawić wartośćON
. W przeciwnym razie instrukcja zakończy się niepowodzeniem. - Kombinacja elementów
CHECK_POLICY = OFF
iCHECK_EXPIRATION = ON
nie jest obsługiwana. - Gdy CHECK_POLICY jest ustawiona na
OFF
wartość , lockout_time jest resetowany iCHECK_EXPIRATION
jest ustawiony naOFF
wartość .
Ważne
CHECK_EXPIRATION i CHECK_POLICY są wymuszane tylko w systemie Windows Server 2003 i nowszych wersjach. Aby uzyskać więcej informacji, zobacz politykę haseł.
- Identyfikatory logowania utworzone na podstawie certyfikatów lub kluczy asymetrycznych są używane tylko do podpisywania kodu. Nie można ich używać do nawiązywania połączenia z programem SQL Server. Możesz utworzyć identyfikator logowania na podstawie certyfikatu lub klucza asymetrycznego tylko wtedy, gdy certyfikat lub klucz asymetryczny już istnieje w programie
master
. - Aby zapoznać się ze skryptem służącym do transferu identyfikatorów logowania, zobacz How to transfer the logins and the passwords between instances of SQL Server 2005 and SQL Server 2008 (Jak przenieść identyfikatory logowania i hasła między wystąpieniami programu SQL Server 2005 i programem SQL Server 2008).
- Utworzenie identyfikatora logowania automatycznie włącza nowe logowanie i przyznaje identyfikatorowi logowania uprawnienia CONNECT SQL na poziomie serwera.
- Tryb uwierzytelniania serwera musi być zgodny z typem logowania, aby zezwolić na dostęp.
- Aby uzyskać informacje na temat projektowania systemu uprawnień, zobacz Wprowadzenie do uprawnień aparatu bazy danych.
Uprawnienia
- Tylko użytkownicy z uprawnieniem ALTER ANY LOGIN na serwerze lub członkostwem w stałej roli serwera securityadmin mogą tworzyć identyfikatory logowania. Aby uzyskać więcej informacji, zobacz roleServer-Level i ALTER SERVER ROLE.
- Jeśli jest używana opcja CREDENTIAL , wymagane jest również uprawnienie ALTER ANY CREDENTIAL na serwerze.
Uprawnienia dla programu SQL Server 2022 i nowszych
Wymaga uprawnienia CREATE LOGIN na serwerze lub członkostwie w stałej roli serwera ##MS_LoginManager##.
Po utworzeniu identyfikatora logowania
Po utworzeniu identyfikatora logowania identyfikator logowania może nawiązać połączenie z programem SQL Server, ale ma tylko uprawnienia przyznane roli publicznej . Rozważ wykonanie niektórych z następujących działań.
- Aby nawiązać połączenie z bazą danych, utwórz użytkownika bazy danych na potrzeby logowania. Aby uzyskać więcej informacji, zobacz CREATE USER (TWORZENIE UŻYTKOWNIKA).
- Utwórz rolę serwera zdefiniowaną przez użytkownika przy użyciu funkcji CREATE SERVER ROLE. Służy
ALTER SERVER ROLE ... ADD MEMBER
do dodawania nowego identyfikatora logowania do roli serwera zdefiniowanego przez użytkownika. Aby uzyskać więcej informacji, zobacz CREATE SERVER ROLE (TWORZENIE ROLI SERWERA ) i ALTER SERVER ROLE (ALTER SERVER ROLE). - Użyj
sp_addsrvrolemember
polecenia , aby dodać identyfikator logowania do stałej roli serwera. Aby uzyskać więcej informacji, zobacz Server-Level Role i sp_addsrvrolemember. - Użyj instrukcji GRANT , aby udzielić uprawnień na poziomie serwera do nowego identyfikatora logowania lub roli zawierającej identyfikator logowania. Aby uzyskać więcej informacji, zobacz GRANT.
Przykłady
Odp. Tworzenie logowania przy użyciu hasła
Poniższy przykład tworzy identyfikator logowania dla określonego użytkownika i przypisuje hasło.
CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO
B. Tworzenie nazwy logowania przy użyciu hasła, które należy zmienić
Poniższy przykład tworzy identyfikator logowania dla określonego użytkownika i przypisuje hasło. Opcja MUST_CHANGE
wymaga od użytkowników zmiany tego hasła przy pierwszym połączeniu się z serwerem.
Dotyczy: SQL Server 2008 (10.0.x) i nowsze wersje.
CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>'
MUST_CHANGE, CHECK_EXPIRATION = ON;
GO
Uwaga / Notatka
Nie można użyć opcji MUST_CHANGE, gdy CHECK_EXPIRATION jest wyłączona.
C. Tworzenie logowania mapowanego na poświadczenia
Poniższy przykład tworzy identyfikator logowania dla określonego użytkownika przy użyciu użytkownika. To logowanie jest mapowane na poświadczenia.
Dotyczy: SQL Server 2008 (10.0.x) i nowsze wersje.
CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>',
CREDENTIAL = <credentialName>;
GO
D. Tworzenie identyfikatora logowania na podstawie certyfikatu
Poniższy przykład tworzy identyfikator logowania dla określonego użytkownika na podstawie certyfikatu w programie master
.
Dotyczy: SQL Server 2008 (10.0.x) i nowsze wersje.
USE MASTER;
CREATE CERTIFICATE <certificateName>
WITH SUBJECT = '<login_name> certificate in master database',
EXPIRY_DATE = '12/05/2025';
GO
CREATE LOGIN <login_name> FROM CERTIFICATE <certificateName>;
GO
E. Tworzenie logowania na podstawie konta domeny systemu Windows
W poniższym przykładzie zostanie utworzone logowanie na podstawie konta domeny systemu Windows.
Dotyczy: SQL Server 2008 (10.0.x) i nowsze wersje.
CREATE LOGIN [<domainName>\<login_name>] FROM WINDOWS;
GO
F. Tworzenie identyfikatora logowania na podstawie identyfikatora SID
Poniższy przykład najpierw tworzy identyfikator logowania uwierzytelniania programu SQL Server i określa identyfikator SID logowania.
CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';
SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO
Moje zapytanie zwraca 0x241C11948AEEB749B0D22646DB1A19F2 jako identyfikator SID. Zapytanie zwróci inną wartość. Poniższe instrukcje usuwają identyfikator logowania, a następnie ponownie utwórz identyfikator logowania. Użyj identyfikatora SID z poprzedniego zapytania.
DROP LOGIN TestLogin;
GO
CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;
SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO
G. Tworzenie identyfikatora logowania z wieloma argumentami
W poniższym przykładzie pokazano, jak ciągować wiele argumentów razem przy użyciu przecinków między każdym argumentem. Zastąp <password>
prawidłowym hasłem.
CREATE LOGIN [MyUser]
WITH PASSWORD = '<password>',
DEFAULT_DATABASE = MyDatabase,
CHECK_POLICY = OFF,
CHECK_EXPIRATION = OFF ;
H. Tworzenie identyfikatora logowania SQL przy użyciu skrótu hasła
W poniższym przykładzie pokazano, jak utworzyć identyfikatory logowania SQL z tym samym hasłem co istniejące identyfikatory logowania, jak w scenariuszu migracji. Pierwszym krokiem jest pobranie skrótu hasła z istniejących identyfikatorów logowania na źródłowym serwerze bazy danych. Następnie ten sam skrót zostanie użyty do utworzenia identyfikatora logowania na nowym serwerze bazy danych. Dzięki temu nowe logowanie będzie miało takie samo hasło jak na starym serwerze.
-- run this to retrieve the password hash for an individual Login:
SELECT LOGINPROPERTY('Andreas','PASSWORDHASH') AS password_hash;
-- as an alternative, the catalog view sys.sql_logins can be used to retrieve the password hashes for multiple accounts at once. (This could be used to create a dynamic sql statement from the result set
SELECT name, password_hash
FROM sys.sql_logins
WHERE
principal_id > 1 -- excluding sa
AND
name NOT LIKE '##MS_%##' -- excluding special MS system accounts
-- create the new SQL Login on the new database server using the hash of the source server
CREATE LOGIN Andreas
WITH PASSWORD = 0x02000A1A89CD6C6E4C8B30A282354C8EA0860719D5D3AD05E0CAE1952A1C6107A4ED26BEBA2A13B12FAB5093B3CC2A1055910CC0F4B9686A358604E99BB9933C75B4EA48FDEA HASHED;
Ja. Tworzenie identyfikatora logowania dla użytkownika entra firmy Microsoft
Poniższy przykład tworzy identyfikator logowania dla konta joe@contoso.onmicrosoft.com Microsoft Entra, które istnieje w dzierżawie firmy Microsoft Entra o nazwie contoso.
CREATE LOGIN [joe@contoso.onmicrosoft.com] FROM EXTERNAL PROVIDER
GO
J. Tworzenie logowania dla federacyjnego konta Microsoft Entra
Poniższy przykład tworzy identyfikator logowania dla federacyjnego konta bob@contoso.com Microsoft Entra, które istnieje w dzierżawie o nazwie contoso. Użytkownik bob może być również użytkownikiem-gościem.
CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
GO
K. Tworzenie identyfikatora logowania dla grupy Microsoft Entra
W poniższym przykładzie zostanie utworzona nazwa logowania dla grupy mygroup firmy Microsoft, która istnieje w dzierżawie contoso.
CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
GO
L. Tworzenie identyfikatora logowania dla aplikacji Firmy Microsoft Entra
Poniższy przykład tworzy identyfikator logowania dla aplikacji Microsoft Entra, która istnieje w dzierżawie contoso.
CREATE LOGIN [myapp] FROM EXTERNAL PROVIDER
Treści powiązane
* Azure SQL Database *
Azure Synapse
analizy
Baza Danych SQL
Aby uzyskać więcej informacji na temat łączności i autoryzacji z usługą Azure SQL Database, zobacz:
- Ustawienia łączności dla usługi Azure SQL Database
- Autoryzowanie dostępu do bazy danych w usłudze SQL Database
Składnia
-- Syntax for Azure SQL Database
CREATE LOGIN login_name
{
FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid']
| WITH <option_list> [,..]
}
<option_list> ::=
PASSWORD = { 'password' }
[ , SID = sid ]
Argumenty (w programowaniu)
login_name
Uwaga / Notatka
podmioty zabezpieczeń serwera firmy Microsoft (identyfikatory logowania) są obecnie dostępne w publicznej wersji zapoznawczej dla usługi Azure SQL Database.
W przypadku użycia z klauzulą FROM EXTERNAL PROVIDER identyfikator logowania określa podmiot zabezpieczeń firmy Microsoft, który jest użytkownikiem, grupą lub aplikacją firmy Microsoft Entra. W przeciwnym razie identyfikator logowania reprezentuje nazwę utworzonego identyfikatora logowania SQL.
Użytkownicy i jednostki usług firmy Microsoft, które są członkami ponad 2048 grup zabezpieczeń firmy Microsoft Entra, nie są obsługiwane w celu logowania się do bazy danych w usłudze SQL Database, SQL Managed Instance lub Azure Synapse.
OD DOSTAWCY ZEWNĘTRZNEGO
Określa, że identyfikator logowania dotyczy uwierzytelniania entra firmy Microsoft.
WITH OBJECT_ID = "objectid"
Określa identyfikator obiektu Entra firmy Microsoft.
OBJECT_ID
Jeśli parametr jest określony, login_name nie jest wymagany do dopasowania nazwy wyświetlanej firmy Microsoft Entra. Login_name musi być unikatową nazwą w sys.server_principals
widoku i przestrzegać wszystkich innych sysname
ograniczeń. Aby uzyskać więcej informacji na temat korzystania z opcji WITH OBJECT_ID
, zobacz logowania firmy Microsoft Entra i użytkowników z nazwami wyświetlanymi bez nazw.
Uwaga / Notatka
Jeśli nazwa wyświetlana jednostki usługi nie jest duplikatem, należy użyć domyślnej instrukcji CREATE LOGIN
lub CREATE USER
. Rozszerzenie WITH OBJECT_ID
to element naprawy rozwiązywania problemów zaimplementowany do użytku z jednostkami usługi nonunique. Korzystanie z niej z unikatową jednostką usługi nie jest zalecane.
WITH OBJECT_ID
Użycie rozszerzenia dla jednostki usługi bez dodawania sufiksu zostanie uruchomione pomyślnie, ale nie będzie oczywiste, dla której jednostki usługi utworzono nazwę logowania lub użytkownika. Zaleca się utworzenie aliasu przy użyciu sufiksu w celu unikatowego zidentyfikowania jednostki usługi. Rozszerzenie WITH OBJECT_ID
nie jest obsługiwane w przypadku programu SQL Server.
HASŁO ='password'
Określa hasło do tworzonego identyfikatora logowania SQL. Użyj silnego hasła. Aby uzyskać więcej informacji, zobacz Silne hasła i Zasady haseł. Począwszy od programu SQL Server 2012 (11.x), przechowywane informacje o hasłach są obliczane przy użyciu algorytmu SHA-512 hasła.
W hasłach jest rozróżniana wielkość liter. Hasła powinny mieć długość co najmniej ośmiu znaków i nie mogą przekraczać 128 znaków. Hasła mogą zawierać znaki a-z, A-Z, 0-9 i większość znaków niealfanumerycznych. Hasła nie mogą zawierać pojedynczych cudzysłowów ani login_name.
SID = sid
Służy do ponownego tworzenia identyfikatora logowania. Dotyczy tylko identyfikatorów logowania uwierzytelniania programu SQL Server, a nie identyfikatorów logowania uwierzytelniania systemu Windows. Określa identyfikator SID nowego logowania uwierzytelniania programu SQL Server. Jeśli ta opcja nie jest używana, program SQL Server automatycznie przypisuje identyfikator SID. Struktura identyfikatora SID zależy od wersji programu SQL Server. W przypadku usługi SQL Database jest to literał 32 bajtów (binary(32)) składający się 0x01060000000000640000000000000000
z plus 16 bajtów reprezentujących identyfikator GUID. Na przykład SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7
.
Uwagi
- W hasłach jest rozróżniana wielkość liter.
- Utworzenie identyfikatora logowania automatycznie włącza nowe logowanie i przyznaje identyfikatorowi logowania uprawnienia CONNECT SQL na poziomie serwera.
Ważne
Aby uzyskać informacje na temat pracy z nazwami logowania i użytkownikami w usłudze Azure SQL Database, zobacz Zarządzanie identyfikatorami logowania w usłudze Azure SQL Database.
Zaloguj się
Identyfikatory logowania usługi SQL Database
Instrukcja CREATE LOGIN musi być jedyną instrukcją w partii.
W niektórych metodach nawiązywania połączenia z usługą SQL Database, takich jak sqlcmd, należy dołączyć nazwę serwera usługi SQL Database do nazwy logowania w parametrach połączenia przy użyciu <notacji serwera logowania>@.<> Jeśli na przykład identyfikator logowania to login1
i w pełni kwalifikowana nazwa serwera usługi SQL Database to servername.database.windows.net
, parametr nazwy użytkownika parametrów połączenia powinien mieć wartość login1@servername
. Ponieważ łączna długość parametru nazwy użytkownika wynosi 128 znaków, login_name jest ograniczona do 127 znaków pomniejszonej o długość nazwy serwera. W tym przykładzie może zawierać tylko 117 znaków, login_name
ponieważ servername
ma 10 znaków.
W usłudze SQL Database musisz mieć połączenie z master
bazą danych z odpowiednimi uprawnieniami, aby utworzyć identyfikator logowania. Aby uzyskać więcej informacji, zobacz Tworzenie dodatkowych identyfikatorów logowania i użytkowników z uprawnieniami administracyjnymi.
Reguły programu SQL Server umożliwiają utworzenie logowania uwierzytelniania programu SQL Server w formacie <loginname>@<servername>. Jeśli serwer usługi SQL Database to myazureserver , a identyfikator logowania to myemail@contoso.com, musisz podać identyfikator logowania jako myemail@contoso.com@myazureserver.
W usłudze SQL Database dane logowania wymagane do uwierzytelnienia reguł zapory na poziomie serwera i połączenia są tymczasowo buforowane w każdej bazie danych. Ta pamięć podręczna jest okresowo odświeżana. Aby wymusić odświeżenie pamięci podręcznej uwierzytelniania i upewnić się, że baza danych ma najnowszą wersję tabeli logins, wykonaj DBCC FLUSHAUTHCACHE.
Uprawnienia
Tylko identyfikator logowania podmiotu zabezpieczeń na poziomie serwera (utworzony przez proces aprowizacji) lub członkowie loginmanager
roli bazy danych w master
bazie danych mogą tworzyć nowe identyfikatory logowania. Aby uzyskać więcej informacji, zobacz Tworzenie dodatkowych identyfikatorów logowania i użytkowników z uprawnieniami administracyjnymi.
Przykłady
Odp. Tworzenie logowania przy użyciu hasła
Poniższy przykład tworzy identyfikator logowania dla określonego użytkownika i przypisuje hasło. Połącz się z bazami master
danych, a następnie użyj poniższego przykładu kodu.
CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO
B. Tworzenie identyfikatora logowania na podstawie identyfikatora SID
Poniższy przykład najpierw tworzy identyfikator logowania uwierzytelniania programu SQL Server i określa identyfikator SID logowania. Połącz się z bazami master
danych, a następnie użyj poniższego przykładu kodu.
CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';
SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO
Moje zapytanie zwraca 0x241C11948AEEB749B0D22646DB1A19F2 jako identyfikator SID. Zapytanie zwróci inną wartość. Poniższe instrukcje usuwają identyfikator logowania, a następnie ponownie utwórz identyfikator logowania. Użyj identyfikatora SID z poprzedniego zapytania.
DROP LOGIN TestLogin;
GO
CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;
SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO
C. Tworzenie logowania przy użyciu konta Microsoft Entra
W tym przykładzie utworzono identyfikator logowania na serwerze logicznym Usługi Azure SQL przy użyciu poświadczeń użytkownika bob@contoso.com
, który istnieje w domenie Microsoft Entra o nazwie contoso
. Połącz się z bazami master
danych, a następnie użyj poniższego przykładu kodu.
CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER;
GO
D. Tworzenie identyfikatora logowania z aliasem przy użyciu identyfikatora obiektu
Możesz utworzyć alias dla login_name , określając identyfikator obiektu jednostki lub grupy usługi Microsoft Entra. Połącz się z bazami master
danych, a następnie użyj poniższego przykładu kodu.
CREATE LOGIN [myapp4466e] FROM EXTERNAL PROVIDER
WITH OBJECT_ID='aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb';
Aby uzyskać więcej informacji na temat uzyskiwania identyfikatora obiektu jednostki usługi, zobacz Obiekty jednostki usługi w identyfikatorze Entra firmy Microsoft.
Treści powiązane
* Azure SQL
Wystąpienie zarządzane *
Azure Synapse
analizy
Azure SQL Managed Instance (Zarządzana Instancja Azure SQL)
Składnia
-- Syntax for Azure SQL Managed Instance
CREATE LOGIN login_name [FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] ] { WITH <option_list> [,..]}
<option_list> ::=
PASSWORD = {'password'}
| SID = sid
| DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
Argumenty (w programowaniu)
login_name
W przypadku użycia z klauzulą FROM EXTERNAL PROVIDER identyfikator logowania określa podmiot zabezpieczeń firmy Microsoft, który jest użytkownikiem, grupą lub aplikacją firmy Microsoft Entra. W przeciwnym razie identyfikator logowania reprezentuje nazwę utworzonego identyfikatora logowania SQL.
Użytkownicy i jednostki usługi firmy Microsoft Entra, którzy są członkami ponad 2048 grup zabezpieczeń firmy Microsoft Entra, nie są obsługiwane do logowania się do baz danych w usłudze Azure SQL Database, azure SQL Managed Instance lub Azure Synapse.
Z
DOSTAWCY ZEWNĘTRZNEGO
Określa, że identyfikator logowania dotyczy uwierzytelniania entra firmy Microsoft.
WITH OBJECT_ID = "objectid"
Określa identyfikator obiektu Entra firmy Microsoft.
OBJECT_ID
Jeśli parametr jest określony, login_name może być aliasem zdefiniowanym przez użytkownika utworzonym na podstawie oryginalnej głównej nazwy wyświetlanej z dołączonym sufiksem. Login_name musi być unikatową nazwą w sys.server_principals
widoku i przestrzegać wszystkich innych sysname
ograniczeń. Aby uzyskać więcej informacji na temat korzystania z opcji WITH OBJECT_ID
, zobacz logowania firmy Microsoft Entra i użytkowników z nazwami wyświetlanymi bez nazw.
Uwaga / Notatka
Jeśli nazwa wyświetlana jednostki usługi nie jest duplikatem, należy użyć domyślnej instrukcji CREATE LOGIN
lub CREATE USER
. Rozszerzenie WITH OBJECT_ID
jest w publicznej wersji zapoznawczej i jest elementem naprawy rozwiązywania problemów zaimplementowanym do użytku z jednostkami usługi bez obsługi. Używanie jej z unikatową jednostką usługi nie jest konieczne.
WITH OBJECT_ID
Użycie rozszerzenia dla jednostki usługi bez dodawania sufiksu zostanie uruchomione pomyślnie, ale nie będzie oczywiste, dla której jednostki usługi utworzono nazwę logowania lub użytkownika. Zaleca się utworzenie aliasu przy użyciu sufiksu w celu unikatowego zidentyfikowania jednostki usługi. Rozszerzenie WITH OBJECT_ID
nie jest obsługiwane w przypadku programu SQL Server.
PASSWORD = 'password'
Określa hasło do tworzonego identyfikatora logowania SQL. Użyj silnego hasła. Aby uzyskać więcej informacji, zobacz Silne hasła i Zasady haseł. Począwszy od programu SQL Server 2012 (11.x), przechowywane informacje o hasłach są obliczane przy użyciu algorytmu SHA-512 hasła.
W hasłach jest rozróżniana wielkość liter. Hasła powinny mieć długość co najmniej 10 znaków i nie mogą przekraczać 128 znaków. Hasła mogą zawierać znaki a-z, A-Z, 0-9 i większość znaków niealfanumerycznych. Hasła nie mogą zawierać pojedynczych cudzysłowów ani login_name.
SID = sid
Służy do ponownego tworzenia identyfikatora logowania. Dotyczy tylko identyfikatorów logowania uwierzytelniania programu SQL Server. Określa identyfikator SID nowego logowania uwierzytelniania programu SQL Server. Jeśli ta opcja nie jest używana, program SQL Server automatycznie przypisuje identyfikator SID. Struktura identyfikatora SID zależy od wersji programu SQL Server. W przypadku usługi SQL Database jest to literał 32 bajtów (binary(32)) składający się 0x01060000000000640000000000000000
z plus 16 bajtów reprezentujących identyfikator GUID. Na przykład SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7
.
Uwagi
Składnia
FROM EXTERNAL PROVIDER
tworzy podmioty zabezpieczeń na poziomie serwera mapowane na konta Microsoft EntraPo
FROM EXTERNAL PROVIDER
określeniu:Login_name musi reprezentować istniejące konto microsoft Entra (użytkownika, grupy lub aplikacji), które jest dostępne w identyfikatorze Entra firmy Microsoft przez bieżące wystąpienie zarządzane usługi Azure SQL. W przypadku podmiotów zabezpieczeń firmy Microsoft składnia CREATE LOGIN wymaga:
UserPrincipalName obiektu Microsoft Entra dla użytkowników firmy Microsoft Entra.
DisplayName obiektu Entra firmy Microsoft dla grup i aplikacji firmy Microsoft.
Nie można użyć opcji PASSWORD .
Domyślnie po pominięciu klauzuli
FROM EXTERNAL PROVIDER
tworzony jest zwykły identyfikator logowania SQL.Identyfikatory logowania entra firmy Microsoft są widoczne w programie
sys.server_principals
z ustawionąE
wartością kolumny typu na wartość itype_desc
ustawioną na EXTERNAL_LOGIN dla logowań mapowanych na użytkowników usługi Microsoft Entra lub wartości kolumny typu ustawionejX
na wartość itype_desc
ustawioną na wartość EXTERNAL_GROUP dla logowań mapowanych na grupy firmy Microsoft Entra.Aby zapoznać się ze skryptem służącym do transferu identyfikatorów logowania, zobacz How to transfer the logins and the passwords between instances of SQL Server 2005 and SQL Server 2008 (Jak przenieść identyfikatory logowania i hasła między wystąpieniami programu SQL Server 2005 i programem SQL Server 2008).
Utworzenie identyfikatora logowania automatycznie włącza nowe logowanie i przyznaje identyfikatorowi logowania uprawnienia CONNECT SQL na poziomie serwera.
Ważne
Aby uzyskać informacje na temat pracy z nazwami logowania i użytkownikami w usłudze Azure SQL Database, zobacz Zarządzanie identyfikatorami logowania w usłudze Azure SQL Database.
Identyfikatory logowania i uprawnienia
Tylko identyfikator logowania podmiotu zabezpieczeń na poziomie serwera (utworzony przez proces aprowizacji) lub członkowie securityadmin
roli lub sysadmin
bazy danych w master
bazie danych mogą tworzyć nowe identyfikatory logowania. Aby uzyskać więcej informacji, zobacz roleServer-Level i ALTER SERVER ROLE.
Domyślnie standardowe uprawnienie przyznane nowo utworzonemu logowaniu firmy Microsoft Entra w programie master
to: CONNECT SQL and VIEW ANY DATABASE (POŁĄCZ SQL i WYŚWIETL DOWOLNĄ BAZĘ DANYCH).
Identyfikatory logowania usługi SQL Managed Instance
Musi mieć uprawnienie ALTER ANY LOGIN na serwerze lub członkostwo w jednej ze stałych ról
securityadmin
serwera lubsysadmin
. Tylko konto Microsoft Entra z uprawnieniem ALTER ANY LOGIN na serwerze lub członkostwem w jednej z tych ról może wykonać polecenie create.Jeśli identyfikator logowania jest podmiotem zabezpieczeń SQL, tylko identyfikatory logowania, które są częścią
sysadmin
roli, mogą użyć polecenia create, aby utworzyć identyfikatory logowania dla konta Microsoft Entra.Musi być członkiem tej samej dzierżawy usługi Microsoft Entra co usługa Azure SQL Managed Instance.
Po utworzeniu identyfikatora logowania
Po utworzeniu identyfikatora logowania identyfikator logowania może nawiązać połączenie z wystąpieniem zarządzanym, ale ma tylko uprawnienia przyznane roli publicznej . Rozważ wykonanie niektórych z następujących działań.
Aby utworzyć użytkownika na podstawie identyfikatora logowania firmy Microsoft Entra, zobacz CREATE USER (TWORZENIE UŻYTKOWNIKA).
Aby udzielić uprawnień użytkownikowi w bazie danych, użyj
ALTER SERVER ROLE ... ADD MEMBER
instrukcji , aby dodać użytkownika do jednej z wbudowanych ról bazy danych lub roli niestandardowej albo przyznać użytkownikowi uprawnienia bezpośrednio przy użyciu instrukcji GRANT . Aby uzyskać więcej informacji, zobacz Role nieadministratora, Dodatkowe role administracyjne na poziomie serwera, ALTER SERVER ROLE i instrukcja GRANT .Aby udzielić uprawnień dla całego serwera, utwórz użytkownika bazy danych w
master
bazie danych i użyj instrukcjiALTER SERVER ROLE ... ADD MEMBER
, aby dodać użytkownika do jednej z ról serwera administracyjnego. Aby uzyskać więcej informacji, zobacz Server-Level Role i ALTER SERVER ROLE oraz Role serwera.- Użyj następującego polecenia, aby dodać
sysadmin
rolę do logowania firmy Microsoft Entra:ALTER SERVER ROLE sysadmin ADD MEMBER [MS_Entra_login]
- Użyj następującego polecenia, aby dodać
Użyj instrukcji GRANT , aby udzielić uprawnień na poziomie serwera do nowego identyfikatora logowania lub roli zawierającej identyfikator logowania. Aby uzyskać więcej informacji, zobacz GRANT.
Ograniczenia
Ustawienie nazwy logowania entra firmy Microsoft zamapowanego na grupę Entra firmy Microsoft, ponieważ właściciel bazy danych nie jest obsługiwany.
Personifikacja logowań firmy Microsoft entra przy użyciu innych podmiotów zabezpieczeń firmy Microsoft jest obsługiwana, na przykład klauzula EXECUTE AS .
Tylko podmioty zabezpieczeń serwera (identyfikatory logowania), które są częścią
sysadmin
roli, mogą wykonywać następujące operacje przeznaczone dla podmiotów zabezpieczeń firmy Microsoft:- WYKONAJ JAKO UŻYTKOWNIK
- WYKONAJ JAKO LOGOWANIE
Zewnętrzni (goście) zaimportowani z innego katalogu firmy Microsoft Entra nie mogą być bezpośrednio skonfigurowani jako administratorzy usługi Microsoft Entra dla usługi SQL Managed Instance przy użyciu witryny Azure Portal. Zamiast tego dołącz użytkownika zewnętrznego do grupy z możliwością przypisania roli i skonfiguruj grupę jako administrator wystąpienia. Możesz użyć programu PowerShell lub interfejsu wiersza polecenia platformy Azure, aby ustawić poszczególnych użytkowników-gości jako administratora wystąpienia.
Identyfikatory logowania nie są replikowane do wystąpienia pomocniczego w grupie trybu failover. Identyfikatory logowania są zapisywane w
master
bazie danych, czyli systemowej bazie danych, a w związku z tym nie są replikowane geograficznie. Aby rozwiązać ten problem, identyfikatory logowania muszą być tworzone przy użyciu tego samego identyfikatora SID w wystąpieniu pomocniczym.
-- Code to create login on the secondary instance
CREATE LOGIN foo WITH PASSWORD = '<enterStrongPasswordHere>', SID = <login_sid>;
Przykłady
Odp. Tworzenie logowania przy użyciu hasła
Poniższy przykład tworzy identyfikator logowania dla określonego użytkownika i przypisuje hasło.
CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO
B. Tworzenie identyfikatora logowania na podstawie identyfikatora SID
Poniższy przykład najpierw tworzy identyfikator logowania uwierzytelniania programu SQL Server i określa identyfikator SID logowania.
CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';
SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO
Moje zapytanie zwraca 0x241C11948AEEB749B0D22646DB1A19F2 jako identyfikator SID. Zapytanie zwróci inną wartość. Poniższe instrukcje usuwają identyfikator logowania, a następnie ponownie utwórz identyfikator logowania. Użyj identyfikatora SID z poprzedniego zapytania.
DROP LOGIN TestLogin;
GO
CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;
SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO
C. Tworzenie identyfikatora logowania dla użytkownika entra firmy Microsoft
Poniższy przykład tworzy identyfikator logowania dla konta joe@contoso.onmicrosoft.com Microsoft Entra, które istnieje w dzierżawie o nazwie contoso.
CREATE LOGIN [joe@contoso.onmicrosoft.com] FROM EXTERNAL PROVIDER
GO
D. Tworzenie logowania dla federacyjnego konta Microsoft Entra
Poniższy przykład tworzy identyfikator logowania dla federacyjnego konta bob@contoso.com Microsoft Entra, które istnieje w dzierżawie o nazwie contoso. Użytkownik bob może być również użytkownikiem-gościem.
CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
GO
E. Tworzenie identyfikatora logowania dla grupy Microsoft Entra
W poniższym przykładzie zostanie utworzona nazwa logowania dla grupy mygroup firmy Microsoft, która istnieje w dzierżawie contoso.
CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
GO
F. Tworzenie identyfikatora logowania dla aplikacji Firmy Microsoft Entra
Poniższy przykład tworzy identyfikator logowania dla aplikacji Microsoft Entra, która istnieje w dzierżawie contoso.
CREATE LOGIN [myapp] FROM EXTERNAL PROVIDER
G. Sprawdzanie nowo dodanych identyfikatorów logowania
Aby sprawdzić nowo dodane dane logowania, wykonaj następujące polecenie języka T-SQL:
SELECT *
FROM sys.server_principals;
GO
Treści powiązane
* Azure Synapse
Analiza *
Azure Synapse Analytics
Składnia
-- Syntax for Azure Synapse Analytics
CREATE LOGIN login_name
{
FROM EXTERNAL PROVIDER
| WITH <option_list> [,..]
}
<option_list> ::=
PASSWORD = { 'password' }
[ , SID = sid ]
Argumenty (w programowaniu)
Uwaga / Notatka
Podmioty zabezpieczeń serwera Microsoft Entra (identyfikatory logowania) są obecnie dostępne w wersji zapoznawczej.
W przypadku użycia z klauzulą FROM EXTERNAL PROVIDER identyfikator logowania określa podmiot zabezpieczeń firmy Microsoft, który jest użytkownikiem, grupą lub aplikacją firmy Microsoft Entra. W przeciwnym razie identyfikator logowania reprezentuje nazwę utworzonego identyfikatora logowania SQL.
Użytkownicy i jednostki usługi firmy Microsoft (aplikacje Firmy Microsoft Entra), które są członkami ponad 2048 grup zabezpieczeń Firmy Microsoft Entra, nie są obsługiwane do logowania się do bazy danych w usłudze SQL Database, SQL Managed Instance lub Azure Synapse.
OD DOSTAWCY ZEWNĘTRZNEGO
Określa, że identyfikator logowania dotyczy uwierzytelniania entra firmy Microsoft.
login_name
Określa nazwę utworzonego identyfikatora logowania. Usługa SQL Analytics w usłudze Azure Synapse obsługuje tylko identyfikatory logowania SQL. Aby utworzyć konta dla użytkowników usługi Microsoft Entra, użyj instrukcji CREATE USER .
HASŁO ='password'
Określa hasło do tworzonego identyfikatora logowania SQL. Użyj silnego hasła. Aby uzyskać więcej informacji, zobacz Silne hasła i Zasady haseł. Począwszy od programu SQL Server 2012 (11.x), przechowywane informacje o hasłach są obliczane przy użyciu algorytmu SHA-512 hasła.
W hasłach jest rozróżniana wielkość liter. Hasła powinny mieć długość co najmniej ośmiu znaków i nie mogą przekraczać 128 znaków. Hasła mogą zawierać znaki a-z, A-Z, 0-9 i większość znaków niealfanumerycznych. Hasła nie mogą zawierać pojedynczych cudzysłowów ani login_name.
SID = sid
Służy do ponownego tworzenia identyfikatora logowania. Dotyczy tylko identyfikatorów logowania uwierzytelniania programu SQL Server, a nie identyfikatorów logowania uwierzytelniania systemu Windows. Określa identyfikator SID nowego logowania uwierzytelniania programu SQL Server. Jeśli ta opcja nie jest używana, program SQL Server automatycznie przypisuje identyfikator SID. Struktura identyfikatora SID zależy od wersji programu SQL Server. W przypadku usługi SQL Analytics jest to literał 32 bajtów (binary(32)) składający się z 0x01060000000000640000000000000000
plus 16 bajtów reprezentujących identyfikator GUID. Na przykład SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7
.
Uwagi
- W hasłach jest rozróżniana wielkość liter.
- Aby zapoznać się ze skryptem służącym do transferu identyfikatorów logowania, zobacz How to transfer the logins and the passwords between instances of SQL Server 2005 and SQL Server 2008 (Jak przenieść identyfikatory logowania i hasła między wystąpieniami programu SQL Server 2005 i programem SQL Server 2008).
- Utworzenie identyfikatora logowania automatycznie włącza nowe logowanie i przyznaje identyfikatorowi logowania uprawnienia CONNECT SQL na poziomie serwera.
- Tryb uwierzytelniania serwera musi być zgodny z typem logowania, aby zezwolić na dostęp.
- Aby uzyskać informacje na temat projektowania systemu uprawnień, zobacz Wprowadzenie do uprawnień aparatu bazy danych.
Logowania
Instrukcja CREATE LOGIN musi być jedyną instrukcją w partii.
Podczas nawiązywania połączenia z usługą Azure Synapse przy użyciu narzędzi takich jak sqlcmd należy dołączyć nazwę serwera usługi SQL Analytics do nazwy logowania w parametrach połączenia przy użyciu <notacji serwera logowania>@.<> Jeśli na przykład identyfikator logowania to login1
i w pełni kwalifikowana nazwa serwera SQL Analytics to servername.database.windows.net
, parametr nazwy użytkownika parametrów połączenia powinien mieć wartość login1@servername
. Ponieważ łączna długość parametru nazwy użytkownika wynosi 128 znaków, login_name jest ograniczona do 127 znaków pomniejszonej o długość nazwy serwera. W tym przykładzie może zawierać tylko 117 znaków, login_name
ponieważ servername
ma 10 znaków.
Aby utworzyć identyfikator logowania, musisz mieć połączenie z bazą master
danych.
Reguły programu SQL Server umożliwiają utworzenie logowania uwierzytelniania programu SQL Server w formacie <loginname>@<servername>. Jeśli serwer usługi SQL Database to myazureserver , a identyfikator logowania to myemail@contoso.com, musisz podać identyfikator logowania jako myemail@contoso.com@myazureserver.
Dane logowania wymagane do uwierzytelnienia połączenia i reguł zapory na poziomie serwera są tymczasowo buforowane w każdej bazie danych. Ta pamięć podręczna jest okresowo odświeżana. Aby wymusić odświeżenie pamięci podręcznej uwierzytelniania i upewnić się, że baza danych ma najnowszą wersję tabeli logins, wykonaj DBCC FLUSHAUTHCACHE.
Aby uzyskać więcej informacji na temat identyfikatorów logowania, zobacz Managing Databases and Logins (Zarządzanie bazami danych i identyfikatorami logowania).
Uprawnienia
Tylko identyfikator logowania podmiotu zabezpieczeń na poziomie serwera (utworzony przez proces aprowizacji) lub członkowie loginmanager
roli bazy danych w master
bazie danych mogą tworzyć nowe identyfikatory logowania. Aby uzyskać więcej informacji, zobacz roleServer-Level i ALTER SERVER ROLE.
Po utworzeniu identyfikatora logowania
Po utworzeniu identyfikatora logowania identyfikator logowania może nawiązać połączenie z usługą Azure Synapse, ale ma tylko uprawnienia przyznane roli publicznej . Rozważ wykonanie niektórych z następujących działań.
Aby nawiązać połączenie z bazą danych, utwórz użytkownika bazy danych na potrzeby logowania. Aby uzyskać więcej informacji, zobacz CREATE USER (TWORZENIE UŻYTKOWNIKA).
Aby udzielić uprawnień użytkownikowi w bazie danych, użyj
ALTER SERVER ROLE ... ADD MEMBER
instrukcji , aby dodać użytkownika do jednej z wbudowanych ról bazy danych lub roli niestandardowej albo przyznać użytkownikowi uprawnienia bezpośrednio przy użyciu instrukcji GRANT . Aby uzyskać więcej informacji, zobacz Role nieadministratora, Dodatkowe role administracyjne na poziomie serwera, ALTER SERVER ROLE i instrukcja GRANT .Aby udzielić uprawnień dla całego serwera, utwórz użytkownika bazy danych w
master
bazie danych i użyj instrukcjiALTER SERVER ROLE ... ADD MEMBER
, aby dodać użytkownika do jednej z ról serwera administracyjnego. Aby uzyskać więcej informacji, zobacz Server-Level Role i ALTER SERVER ROLE oraz Role serwera.Użyj instrukcji GRANT , aby udzielić uprawnień na poziomie serwera do nowego identyfikatora logowania lub roli zawierającej identyfikator logowania. Aby uzyskać więcej informacji, zobacz GRANT.
Przykłady
Odp. Tworzenie logowania przy użyciu hasła
Poniższy przykład tworzy identyfikator logowania dla określonego użytkownika i przypisuje hasło.
CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO
B. Tworzenie identyfikatora logowania na podstawie identyfikatora SID
Poniższy przykład najpierw tworzy identyfikator logowania uwierzytelniania programu SQL Server i określa identyfikator SID logowania.
CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';
SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO
Moje zapytanie zwraca 0x241C11948AEEB749B0D22646DB1A19F2 jako identyfikator SID. Zapytanie zwróci inną wartość. Poniższe instrukcje usuwają identyfikator logowania, a następnie ponownie utwórz identyfikator logowania. Użyj identyfikatora SID z poprzedniego zapytania.
DROP LOGIN TestLogin;
GO
CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;
SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO
Treści powiązane
Azure Synapse
analizy
* Analiza
System platformy (PDW) *
Platforma analityczna
Składnia
-- Syntax for Analytics Platform System
CREATE LOGIN loginName { WITH <option_list1> | FROM WINDOWS }
<option_list1> ::=
PASSWORD = { 'password' } [ MUST_CHANGE ]
[ , <option_list> [ ,... ] ]
<option_list> ::=
CHECK_EXPIRATION = { ON | OFF}
| CHECK_POLICY = { ON | OFF}
Argumenty (w programowaniu)
login_name
Określa nazwę utworzonego identyfikatora logowania. Istnieją cztery typy identyfikatorów logowania: identyfikatory logowania programu SQL Server, identyfikatory logowania systemu Windows, identyfikatory logowania mapowane przy użyciu certyfikatu i logowania mapowane przy użyciu klucza asymetrycznego. Podczas tworzenia identyfikatorów logowania mapowanych z konta domeny systemu Windows należy użyć nazwy logowania użytkownika w wersji wstępnej systemu Windows 2000 w formacie [<domainName>\<login_name>]. Nie można użyć nazwy UPN w formacie login_name@DomainName. Przykład można znaleźć w przykładzie D w dalszej części tego artykułu. Identyfikatory logowania uwierzytelniania są typu sysname i muszą być zgodne z regułami identyfikatorów i nie mogą zawierać elementu "\". Identyfikatory logowania systemu Windows mogą zawierać element "\". Identyfikatory logowania oparte na użytkownikach usługi Active Directory są ograniczone do nazw mniejszych niż 21 znaków.
PASSWORD ='password'
Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa hasło do tworzonego identyfikatora logowania. Użyj silnego hasła. Aby uzyskać więcej informacji, zobacz Silne hasła i Zasady haseł. Począwszy od programu SQL Server 2012 (11.x), przechowywane informacje o hasłach są obliczane przy użyciu algorytmu SHA-512 hasła.
W hasłach jest rozróżniana wielkość liter. Hasła powinny mieć długość co najmniej ośmiu znaków i nie mogą przekraczać 128 znaków. Hasła mogą zawierać znaki a-z, A-Z, 0-9 i większość znaków niealfanumerycznych. Hasła nie mogą zawierać pojedynczych cudzysłowów ani login_name.
MUST_CHANGE
Dotyczy tylko identyfikatorów logowania programu SQL Server. Jeśli ta opcja jest dołączona, program SQL Server monituje użytkownika o nowe hasło przy pierwszym użyciu nowego logowania.
CHECK_EXPIRATION = { ON | WYŁ. }
Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa, czy zasady wygasania haseł powinny być wymuszane podczas tego logowania. Wartość domyślna to OFF.
CHECK_POLICY = { ON | WYŁ. }
Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa, że zasady haseł systemu Windows komputera, na którym działa program SQL Server, powinny być wymuszane na tym logowaniu. Wartość domyślna to WŁĄCZONE.
Jeśli zasady systemu Windows wymagają silnych haseł, hasła muszą zawierać co najmniej trzy z następujących czterech cech:
- Wielkie litery (A-Z).
- Małe litery (a-z).
- Cyfra (0–9).
- Jeden z znaków nieliczbowych, takich jak spacja, _, @, @, *, ^, %, !, $, #lub &.
Okna
Określa, że nazwa logowania ma być mapowana na dane logowania systemu Windows.
Uwagi
- W hasłach jest rozróżniana wielkość liter.
- Jeśli określono MUST_CHANGE, CHECK_EXPIRATION i CHECK_POLICY muszą być ustawione na WARTOŚĆ WŁĄCZONE. W przeciwnym razie instrukcja zakończy się niepowodzeniem.
- Kombinacja CHECK_POLICY = OFF i CHECK_EXPIRATION = ON nie jest obsługiwana.
- Gdy CHECK_POLICY jest ustawiona na WARTOŚĆ WYŁĄCZONE, lockout_time jest resetowany, a CHECK_EXPIRATION jest ustawiona na WARTOŚĆ OFF.
Ważne
CHECK_EXPIRATION i CHECK_POLICY są wymuszane tylko w systemie Windows Server 2003 i nowszych wersjach. Aby uzyskać więcej informacji, zobacz politykę haseł.
- Aby zapoznać się ze skryptem służącym do transferu identyfikatorów logowania, zobacz How to transfer the logins and the passwords between instances of SQL Server 2005 and SQL Server 2008 (Jak przenieść identyfikatory logowania i hasła między wystąpieniami programu SQL Server 2005 i programem SQL Server 2008).
- Utworzenie identyfikatora logowania automatycznie włącza nowe logowanie i przyznaje identyfikatorowi logowania uprawnienia CONNECT SQL na poziomie serwera.
- Aby uzyskać informacje na temat projektowania systemu uprawnień, zobacz Wprowadzenie do uprawnień aparatu bazy danych.
Uprawnienia
Tylko użytkownicy z uprawnieniem ALTER ANY LOGIN na serwerze lub członkostwem w stałej roli serwera securityadmin mogą tworzyć identyfikatory logowania. Aby uzyskać więcej informacji, zobacz roleServer-Level i ALTER SERVER ROLE.
Po utworzeniu identyfikatora logowania
Po utworzeniu logowania identyfikator logowania może nawiązać połączenie z usługą Azure Synapse Analytics, ale ma tylko uprawnienia przyznane roli publicznej . Rozważ wykonanie niektórych z następujących działań.
- Aby nawiązać połączenie z bazą danych, utwórz użytkownika bazy danych na potrzeby logowania. Aby uzyskać więcej informacji, zobacz CREATE USER (TWORZENIE UŻYTKOWNIKA).
- Utwórz rolę serwera zdefiniowaną przez użytkownika przy użyciu funkcji CREATE SERVER ROLE. Służy
ALTER SERVER ROLE ... ADD MEMBER
do dodawania nowego identyfikatora logowania do roli serwera zdefiniowanego przez użytkownika. Aby uzyskać więcej informacji, zobacz CREATE SERVER ROLE (TWORZENIE ROLI SERWERA ) i ALTER SERVER ROLE (ALTER SERVER ROLE). - Użyj
sp_addsrvrolemember
polecenia , aby dodać identyfikator logowania do stałej roli serwera. Aby uzyskać więcej informacji, zobacz Server-Level Role i sp_addsrvrolemember. - Użyj instrukcji GRANT , aby udzielić uprawnień na poziomie serwera do nowego identyfikatora logowania lub roli zawierającej identyfikator logowania. Aby uzyskać więcej informacji, zobacz GRANT.
Przykłady
G. Tworzenie logowania do uwierzytelniania programu SQL Server przy użyciu hasła
Poniższy przykład tworzy identyfikator logowania Mary7
przy użyciu hasła A2c3456
.
CREATE LOGIN Mary7 WITH PASSWORD = 'A2c3456$#' ;
H. Korzystanie z opcji
Poniższy przykład tworzy identyfikator logowania Mary8
przy użyciu hasła i niektórych opcjonalnych argumentów.
CREATE LOGIN Mary8 WITH PASSWORD = 'A2c3456$#' MUST_CHANGE,
CHECK_EXPIRATION = ON,
CHECK_POLICY = ON;
Ja. Tworzenie logowania na podstawie konta domeny systemu Windows
Poniższy przykład tworzy identyfikator logowania z konta domeny systemu Windows o nazwie Mary
w domenie Contoso
.
CREATE LOGIN [Contoso\Mary] FROM WINDOWS;
GO
Treści powiązane
- Wprowadzenie Do Uprawnień Silnika Bazy Danych
- Główni
- Polityka Haseł
- ALTER LOGIN
- DROP LOGIN
- DANE ZDARZENIA
- Utwórz konto