sp_addrolemember (T-SQL)
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Menambahkan pengguna database, peran database, login Windows, atau grup Windows ke peran database dalam database saat ini.
Penting
Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Gunakan UBAH PERAN sebagai gantinya.
Sintaksis
sp_addrolemember
[ @rolename = ] N'rolename'
, [ @membername = ] N'membername'
[ ; ]
Catatan
Sintaks ini tidak didukung oleh kumpulan SQL tanpa server di Azure Synapse Analytics.
Argumen
[ @rolename = ] N'rolename'
Nama peran database dalam database saat ini. @rolename adalah sysname, tanpa default.
[ @membername = ] N'membername'
Akun keamanan yang ditambahkan ke peran tersebut. @membername adalah sysname, tanpa default. @membername bisa menjadi pengguna database, peran database, login Windows, atau grup Windows.
Mengembalikan nilai kode
0
(berhasil) atau 1
(kegagalan).
Keterangan
Anggota ditambahkan ke peran dengan menggunakan sp_addrolemember
mewarisi izin peran. Jika anggota baru adalah prinsipal tingkat Windows tanpa pengguna database yang sesuai, pengguna database dibuat, tetapi mungkin tidak sepenuhnya dipetakan ke login. Selalu periksa apakah login ada dan memiliki akses ke database.
Peran tidak dapat menyertakan dirinya sebagai anggota. Definisi melingkar seperti itu tidak valid, bahkan ketika keanggotaan secara tidak langsung disiratkan oleh satu atau beberapa keanggotaan perantara.
sp_addrolemember
tidak dapat menambahkan peran database tetap, peran server tetap, atau dbo ke peran.
Hanya gunakan sp_addrolemember
untuk menambahkan anggota ke peran database. Untuk menambahkan anggota ke peran server, gunakan sp_addsrvrolemember (Transact-SQL).
Izin
Menambahkan anggota ke peran database fleksibel memerlukan salah satu izin berikut:
Keanggotaan dalam peran database tetap db_securityadmin atau db_owner .
Keanggotaan dalam peran yang memiliki peran.
ALTER ANY ROLE
izin atauALTER
izin pada peran.
Menambahkan anggota ke peran database tetap memerlukan keanggotaan dalam peran database tetap db_owner .
Contoh
J. Menambahkan login Windows
Contoh berikut menambahkan login Contoso\Mary5
Windows ke AdventureWorks2022
database sebagai pengguna Mary5
. Pengguna Mary5
kemudian ditambahkan ke Production
peran.
Karena Contoso\Mary5
dikenal sebagai pengguna Mary5
database dalam AdventureWorks2022
database, nama Mary5
pengguna harus ditentukan. Pernyataan gagal kecuali Contoso\Mary5
ada login. Uji dengan menggunakan login dari domain Anda.
USE AdventureWorks2022;
GO
CREATE USER Mary5 FOR LOGIN [Contoso\Mary5];
GO
B. Menambahkan pengguna database
Contoh berikut menambahkan pengguna Mary5
database ke Production
peran database dalam database saat ini.
EXEC sp_addrolemember 'Production', 'Mary5';
Contoh: Analytics Platform System (PDW)
C. Menambahkan login Windows
Contoh berikut menambahkan login LoginMary
ke AdventureWorks2022
database sebagai pengguna UserMary
. Pengguna UserMary
kemudian ditambahkan ke Production
peran.
Catatan
Karena login LoginMary
dikenal sebagai pengguna UserMary
database dalam AdventureWorks2022
database, nama UserMary
pengguna harus ditentukan. Pernyataan akan gagal kecuali Mary5
ada login. Login dan pengguna biasanya memiliki nama yang sama. Contoh ini menggunakan nama yang berbeda untuk membedakan tindakan yang memengaruhi login vs. pengguna.
-- Uses AdventureWorks2022
CREATE USER UserMary FOR LOGIN LoginMary;
GO
EXEC sp_addrolemember 'Production', 'UserMary'
D. Menambahkan pengguna database
Contoh berikut menambahkan pengguna UserMary
database ke Production
peran database dalam database saat ini.
EXEC sp_addrolemember 'Production', 'UserMary'