Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Untuk masuk ke instans Microsoft SQL Server, prinsipal harus memiliki login SQL Server yang valid. Login ini digunakan dalam proses autentikasi yang memverifikasi apakah prinsipal diizinkan untuk terhubung ke instans SQL Server. Login SQL Server pada instans server terlihat dalam tampilan katalog sys.server_principals dan tampilan kompatibilitas sys.syslogins .
Login SQL Server mengakses database individual menggunakan pengguna database yang dipetakan ke login SQL Server. Ada dua pengecualian untuk aturan ini:
Akun tamu.
Ini adalah akun yang, ketika diaktifkan dalam database, memungkinkan login SQL Server yang tidak dipetakan ke pengguna database untuk mengakses database sebagai pengguna tamu.
Keanggotaan grup Microsoft Windows.
Login SQL Server yang dibuat dari pengguna Windows dapat memasukkan database jika pengguna Windows adalah anggota grup Windows yang juga merupakan pengguna dalam database.
Informasi tentang pemetaan login SQL Server ke pengguna database disimpan dalam database. Ini termasuk nama pengguna database dan SID login SQL Server yang sesuai. Izin pengguna database ini digunakan untuk otorisasi dalam database.
Pengguna database yang login SQL Server terkait tidak ditentukan atau salah ditentukan pada instans server tidak dapat masuk ke instans. Pengguna seperti itu dikatakan sebagai pengguna tanpa intim dari database pada instans server tersebut. Pengguna database dapat menjadi yatim piatu jika login SQL Server yang sesuai dihilangkan. Selain itu, pengguna database dapat menjadi yatim piatu setelah database dipulihkan atau dilampirkan ke instans SQL Server yang berbeda. Orphaning dapat terjadi jika pengguna database dipetakan ke SID yang tidak ada di instans server baru.
Nota
Login SQL Server tidak dapat mengakses database di mana tidak memiliki pengguna database yang sesuai kecuali tamu diaktifkan dalam database tersebut. Untuk informasi tentang membuat akun pengguna database, lihat CREATE USER (Transact-SQL).
Untuk Mendeteksi Pengguna Yatim
Untuk mendeteksi pengguna yatim piatu, jalankan pernyataan Transact-SQL berikut:
USE <database_name>;
GO;
sp_change_users_login @Action='Report';
GO;
Output mencantumkan pengguna dan pengidentifikasi keamanan (SID) terkait dalam database saat ini yang tidak ditautkan ke login SQL Server apa pun. Untuk informasi selengkapnya, lihat sp_change_users_login (Transact-SQL).
Nota
sp_change_users_login tidak dapat digunakan dengan login SQL Server yang dibuat dari Windows.
Untuk Menyelesaikan Pengguna Terputus
Untuk mengatasi pengguna terlantar, gunakan prosedur berikut ini:
Perintah berikut menautkan ulang akun masuk server yang ditentukan oleh <login_name> dengan pengguna database yang ditentukan oleh <database_user>.
USE <database_name>; GO sp_change_users_login @Action='update_one', @UserNamePattern='<database_user>', @LoginName='<login_name>'; GOUntuk informasi selengkapnya, lihat sp_change_users_login (Transact-SQL).
Setelah Anda menjalankan kode di langkah sebelumnya, pengguna dapat mengakses database. Pengguna kemudian dapat mengubah kata sandi <akun login login_name> dengan menggunakan prosedur tersimpan sp_password , sebagai berikut:
USE master GO sp_password @old=NULL, @new='password', @loginame='<login_name>'; GOPenting
Hanya login dengan izin ALTER ANY LOGIN yang dapat mengubah kata sandi login pengguna lain. Namun, hanya anggota peran sysadmin yang dapat memodifikasi kata sandi anggota peran sysadmin .
Nota
sp_password tidak dapat digunakan untuk akun Microsoft Windows. Pengguna yang terhubung ke instans SQL Server melalui akun jaringan Windows mereka diautentikasi oleh Windows; oleh karena itu, kata sandi mereka hanya dapat diubah di Windows.
Untuk informasi selengkapnya, lihat sp_password (Transact-SQL).
Lihat Juga
CREATE USER (Transact-SQL)
BUAT LOGIN (Transact-SQL)
sp_change_users_login (Transact-SQL)
sp_addlogin (T-SQL)
sp_grantlogin (T-SQL)
sp_password (T-SQL)
sys.sysusers (Transact-SQL)
sys.syslogins (Transact-SQL)