Funcții care returnează numele de utilizator și ID-urile

Mai multe funcții ale sistemului returnează numele de utilizator și identificatorii. Înțelegerea parametrilor și a ieșirii acestor funcții necesită înțelegerea tipurilor de nume și identificatori utilizați în SQL Server.

Fiecare utilizator care se conectează la SQL Server are două nivele de nume în SQL Server, fiecare dintre care este asociat cu un identificator unic.

Numele de cont Microsoft Windows

Nume de conectare SQL Server

Acestea sunt folosite atunci când utilizatorul utilizează autentificarea SQL Server când se conectează. Numele de conectare SQL Server sunt definite de membrii rolurilor de server predefinite ale serverului sysadmin sau securityadmin folosind procedura stocată sp_addlogin. Toate datele de conectare SQL Server sunt stocate în tabela master.dbo.syslogins.loginname. SQL Server generează GUID care este folosit ca identificator de securitate și este stocat în tabela sys.server_principals.sid.

SQL Server folosește câmpul sys.server_principals.sid ca identificator de securitate pentru numele de conectare.

Numele de utilizator al bazei de date

Identificatorul de securitate pentru fiecare utilizator este stocat în tabela sys.database_principals.sid; astfel încât să puteți asocia utilizatorii cu numele lor de conectare. Este mult mai ușor dacă numele bazei de date a bazei de date a utilizatorilor este identic cu login-ul SQL sau cu contul Windows, dar acest lucru nu este necesar.

Când vă conectați la o instanță a serverului SQL, puteți obține coduri de conectare sau conturi de conectare după cum urmează:

Funcția SUSER_SNAME returnează numele de conectare SQL Server sau contul Windows asociat identificatorului de securitate.

Funcția SUSER_SNAME returnează identificatorul de securitate al identificatorului. care este asociat cu login-ul SQL sau contul Windows.

Funcția SUSER_SID () (funcția SUSER_SID, specificată fără parametrul login_account) returnează identificatorul identificatorului de securitate al conexiunii curente, indiferent de autentificarea SQL Server sau Windows.

Funcția standard SYSTEM_USE ISO returnează un cont Windows pentru conectare utilizând autentificarea Windows sau autentificarea SQL Server pentru a se conecta utilizând autentificarea SQL Server. În Transact-SQL, funcția SYSTEM_USER este sinonimă cu SUSER_SNAME () (SUSER_SNAME fără argumentul identificatorului de securitate).

În SQL Server, funcțiile care returnează numele de conectare sau numele contului sunt efectuate după cum urmează:

Funcția SUSER_SNAME acceptă:

Identificatorul de securitate_identificator pentru un cont sau grup Windows, caz în care numele contului sau grupului Windows este returnat.

Fie pseudo-identificatorul identificatorului de securitate. generate pentru numele de conectare SQL Server, caz în care numele de conectare SQL Server este returnat.

Dacă argumentul security_identifier nu este specificat pentru o conexiune stabilită utilizând Windows Authentication, funcția SUSER_SNAME returnează numele contului Windows asociat conexiunii. Dacă conexiunea este stabilită utilizând autentificarea SQL Server, SUSER_SNAME returnează datele de conectare SQL Server asociate conexiunii.

În standardul ISO, funcția SYSTEM_USER este implementată ca sinonim pentru SUSER_SNAME (). (Funcția SUSER_SNAME este specificată fără argumentul security_identifier).

Dacă sunteți conectat la o instanță a serverului SQL, puteți obține numele și codurile de utilizator după cum urmează.

Funcția USER_ID returnează ID-ul de utilizator al bazei de date asociat cu numele de utilizator al bazei de date.

Funcția USER_ID () returnează ID-ul de utilizator al bazei de date asociat cu conexiunea curentă.

Funcția USER_NAME returnează numele de utilizator al bazei de date asociat cu ID-ul de utilizator al bazei de date.

Funcțiile ISO CURRENT_USER sau SESSION_USER returnează numele de utilizator al bazei de date asociate cu conexiunea curentă. În Transact-SQL, aceste funcții sunt implementate în funcție de USER_NAME (). (Funcția USER_NAME este specificată fără argumentul database_user_ID). În limba Transact-SQL, USER este de asemenea implementată ca sinonim pentru USER_SNAME ().

În SQL Server, funcțiile care returnează numele de conectare sau numele contului sunt efectuate după cum urmează:

Funcția USER_ID returnează ID-ul de utilizator asociat cu numele de utilizator specificat al bazei de date. Dacă nu este specificat nume_produs_server, USER_ID returnează ID-ul de utilizator al bazei de date asociat cu conexiunea curentă.

Funcția USER_NAME returnează numele utilizatorului bazei de date asociat cu ID-ul de utilizator specificat al bazei de date. Dacă nu este specificat database_user_ID, USER_NAME returnează numele de utilizator al bazei de date asociat cu conexiunea curentă.

CURRENT_USER, SESSION_USER, USER

Aceste funcții sunt sinonime cu funcția USER_NAME (). (Funcția NAME NAME, specificată fără parametrul database_user_ID).

Articole similare