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.
Berlaku untuk:Azure SQL Managed Instance
Dalam artikel ini, pelajari cara menggunakan prinsipal server (login) yang didukung oleh MICROSOFT Entra ID (sebelumnya Azure Active Directory) untuk mengamankan Azure SQL Managed Instance.
Dalam tutorial ini, Anda akan mempelajari cara:
- Buat login Microsoft Entra untuk instans terkelola SQL.
- Berikan izin untuk masuk dalam instans terkelola SQL.
- Buat pengguna Microsoft Entra dari login.
- Tetapkan izin kepada pengguna, dan kelola keamanan database.
- Gunakan peniruan identitas dengan pengguna.
- Gunakan kueri lintas database dengan pengguna.
- Pelajari tentang fitur keamanan, seperti perlindungan ancaman, audit, masking data, dan enkripsi.
Catatan
ID Microsoft Entra sebelumnya dikenal sebagai Azure Active Directory (Azure AD).
Prasyarat
Untuk menyelesaikan tutorial ini, pastikan prasyarat berikut dipenuhi:
- SQL Server Management Studio (SSMS)
- Instans terkelola SQL
- Ikuti artikel ini: Mulai cepat: Membuat instans terkelola SQL
- Dapat mengakses instans terkelola SQL Anda dan menyediakan administrator Microsoft Entra untuk instans terkelola SQL. Untuk mempelajari selengkapnya, lihat:
Membatasi akses
Instans terkelola SQL dapat diakses melalui alamat IP privat. Sama seperti lingkungan SQL Server yang terisolasi, aplikasi atau pengguna memerlukan akses ke jaringan SQL Managed Instance (VNet) sebelum koneksi dapat dibuat. Untuk informasi selengkapnya, lihat Menghubungkan aplikasi Anda ke SQL Managed Instance.
Dimungkinkan juga untuk mengonfigurasi titik akhir layanan pada instans terkelola SQL, yang memungkinkan koneksi publik dengan cara yang sama seperti untuk Azure SQL Database. Untuk informasi selengkapnya, lihat Mengonfigurasi titik akhir publik di Azure SQL Managed Instance.
Membuat login Microsoft Entra menggunakan SSMS
Administrator SQL dapat membuat login Microsoft Entra pertama, atau admin Microsoft Entra yang dibuat selama provisi. Untuk informasi selengkapnya, lihat Menyediakan administrator Microsoft Entra untuk SQL Managed Instance.
Lihat artikel berikut untuk contoh menyambungkan ke SQL Managed Instance:
- Mulai cepat: Mengonfigurasi Azure VM untuk menyambungkan ke SQL Managed Instance
- Mulai cepat: Mengonfigurasi koneksi titik-ke-situs ke SQL Managed Instance dari lokal
Sambungkan ke instans terkelola SQL Anda dengan login SqL sysadmin atau admin Microsoft Entra dengan menggunakan SQL Server Management Studio (SSMS).
Di Object Explorer, klik kanan server dan pilih Kueri Baru.
Di jendela kueri, gunakan sintaks berikut untuk membuat login untuk akun Microsoft Entra lokal:
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GOContoh ini membuat info masuk untuk akun
nativeuser@aadsqlmi.onmicrosoft.com.USE master GO CREATE LOGIN [nativeuser@aadsqlmi.onmicrosoft.com] FROM EXTERNAL PROVIDER GOPada toolbar, pilih Eksekusi untuk membuat info masuk.
Periksa login yang baru ditambahkan dengan menjalankan perintah T-SQL berikut:
SELECT * FROM sys.server_principals; GO
Untuk informasi selengkapnya, lihat MEMBUAT INFO MASUK.
Memberikan izin untuk membuat info login
Login yang ada harus memiliki izin yang sesuai atau menjadi bagian dari peran server yang sesuai untuk membuat login Microsoft Entra lainnya.
Login autentikasi SQL
Jika login adalah prinsipal server berbasis autentikasi SQL, maka harus diberi peran sysadmin untuk membuat login untuk akun Microsoft Entra.
Masuk autentikasi Microsoft Entra
- Jika login adalah perwakilan server Microsoft Entra, itu harus ditetapkan peran server sysadmin atau securityadmin untuk membuat login untuk pengguna, grup, dan aplikasi Microsoft Entra lainnya.
- Minimal,
ALTER ANY LOGINizin harus diberikan untuk membuat login Microsoft Entra lainnya. - Secara default, izin standar yang diberikan untuk login
masterMicrosoft Entra yang baru dibuat adalahCONNECT SQLdanVIEW ANY DATABASE. - Peran server sysadmin dapat diberikan ke banyak login Microsoft Entra dalam instans terkelola SQL.
Untuk menambahkan login ke peran server sysadmin :
Masuk ke instans terkelola SQL lagi, atau gunakan koneksi yang ada dengan admin Microsoft Entra atau prinsipal SQL yang merupakan sysadmin.
Di Object Explorer, klik kanan server dan pilih Kueri Baru.
Berikan microsoft Entra masuk peran server sysadmin dengan menggunakan sintaks T-SQL berikut:
ALTER SERVER ROLE sysadmin ADD MEMBER login_name GOContoh berikut memberikan peran server sysadmin ke login
nativeuser@aadsqlmi.onmicrosoft.com:ALTER SERVER ROLE sysadmin ADD MEMBER [nativeuser@aadsqlmi.onmicrosoft.com] GO
Membuat login Microsoft Entra tambahan menggunakan SSMS
Setelah login Microsoft Entra dibuat dan diberikan hak istimewa sysadmin , login tersebut dapat membuat login tambahan menggunakan FROM EXTERNAL PROVIDER klausa dengan CREATE LOGIN.
Sambungkan ke instans terkelola SQL dengan login Microsoft Entra dengan memilih Sambungkan ke Server di SQL Server Management Studio (SSMS).
- Masukkan nama host SQL Managed Instance Anda di Nama server.
- Untuk Autentikasi, pilih Microsoft Entra MFA untuk memunculkan jendela masuk autentikasi multifaktor. Masuk. Untuk informasi selengkapnya, lihat Autentikasi Universal (dukungan SSMS untuk autentikasi multifaktor).
Di Object Explorer, klik kanan server dan pilih Kueri Baru.
Di jendela kueri, gunakan sintaks berikut untuk membuat login untuk akun Microsoft Entra lain:
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GOContoh ini membuat login untuk pengguna
bob@aadsqlmi.netMicrosoft Entra , yang domainnyaaadsqlmi.netdigabungkan dengan domain Microsoft Entraaadsqlmi.onmicrosoft.com.Jalankan perintah T-SQL berikut. Akun Microsoft Entra gabungan adalah pengganti SQL Managed Instance untuk login dan pengguna Windows lokal.
USE master GO CREATE LOGIN [bob@aadsqlmi.net] FROM EXTERNAL PROVIDER GOBuat database di instans terkelola SQL menggunakan sintaksIS CREATE DATABASE . Database ini akan digunakan untuk menguji info masuk pengguna di bagian berikutnya.
Di Object Explorer, klik kanan server dan pilih Kueri Baru.
Di jendela kueri, gunakan sintaks berikut untuk membuat database bernama MyMITestDB.
CREATE DATABASE MyMITestDB; GO
Buat login SQL Managed Instance untuk grup di ID Microsoft Entra. Grup harus ada di ID Microsoft Entra sebelum menambahkan login ke SQL Managed Instance. Lihat Membuat grup dasar dan menambahkan anggota menggunakan ID Microsoft Entra. Buat grup mygroup, dan tambahkan anggota ke grup ini.
Buka jendela kueri baru di SQL Server Management Studio.
Contoh ini mengasumsikan ada grup yang disebut mygroup di ID Microsoft Entra. Jalankan perintah berikut:
USE master GO CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER GOSebagai pengujian, masuk ke instans terkelola SQL dengan login atau grup yang baru dibuat. Buka koneksi baru ke instans terkelola SQL, dan gunakan login baru saat mengautentikasi.
Di Object Explorer, klik kanan server dan pilih Kueri Baru untuk koneksi baru.
Periksa izin server untuk login Microsoft Entra yang baru dibuat dengan menjalankan perintah berikut:
SELECT * FROM sys.fn_my_permissions (NULL, 'DATABASE') GO
Dukungan Azure SQL terhadap perwakilan Microsoft Entra saat pengguna dan login diperluas ke pengguna tamu internal dan tamu eksternal Microsoft Entra External ID . Pengguna tamu, baik secara individual maupun sebagai bagian dari grup, dapat digunakan sama dengan pengguna Microsoft Entra lainnya di Azure SQL. Jika Anda ingin pengguna tamu dapat membuat login server Microsoft Entra atau pengguna database lainnya, mereka harus memiliki izin untuk membaca identitas lain di direktori Microsoft Entra. Izin ini dikonfigurasi pada tingkat direktori. Untuk informasi selengkapnya, lihat izin akses tamu di ID Microsoft Entra.
Membuat pengguna Microsoft Entra dari login Microsoft Entra
Otorisasi ke database individual berfungsi dengan cara yang sama dalam SQL Managed Instance seperti halnya database di SQL Server. Anda bisa membuat pengguna dari login yang sudah ada dalam database yang diberikan izin ke database tersebut atau ditambahkan ke peran database.
Sekarang setelah kita membuat database yang disebut MyMITestDB dan login yang hanya memiliki izin default, langkah selanjutnya adalah membuat pengguna dari login tersebut. Saat ini, login dapat terhubung ke instans terkelola SQL dan melihat semua database, tetapi tidak dapat berinteraksi dengan database. Jika Anda masuk dengan akun Microsoft Entra yang memiliki izin default dan mencoba memperluas database yang baru dibuat, Anda akan melihat kesalahan berikut:
Untuk informasi selengkapnya tentang pemberian izin database, lihat Memulai dengan Izin Mesin Database.
Membuat pengguna Microsoft Entra dan membuat tabel sampel
Catatan
Ada beberapa batasan saat pengguna masuk sebagai bagian dari grup Microsoft Entra.
Misalnya, panggilan untuk SUSER_SID mengembalikan NULL, karena pengguna Microsoft Entra yang diberikan bukan bagian dari tabel sys.server_principals .
Oleh karena itu, akses ke prosedur tersimpan tertentu atau daftar izin yang diberikan mungkin terbatas dalam kasus ini.
Masuk ke instans terkelola SQL Anda dengan akun sysadmin di SQL Server Management Studio.
Di Object Explorer, klik kanan server dan pilih Kueri Baru.
Di jendela kueri, gunakan sintaks berikut untuk membuat pengguna dari login Microsoft Entra:
USE <Database Name> -- provide your database name GO CREATE USER user_name FROM LOGIN login_name GOContoh berikut membuat pengguna
bob@aadsqlmi.netdari info masukbob@aadsqlmi.net:USE MyMITestDB GO CREATE USER [bob@aadsqlmi.net] FROM LOGIN [bob@aadsqlmi.net] GOIni juga didukung untuk membuat pengguna Microsoft Entra dari login Microsoft Entra yang merupakan grup.
Contoh berikut membuat login untuk grup Microsoft Entra mygroup yang ada di penyewa Microsoft Entra Anda:
USE MyMITestDB GO CREATE USER [mygroup] FROM LOGIN [mygroup] GOSemua pengguna yang termasuk dalam grup saya dapat mengakses database MyMITestDB.
Penting
Saat membuat PENGGUNA dari login Microsoft Entra, tentukan user_name sebagai login_name yang sama dari
LOGIN.Untuk informasi selengkapnya, lihat MEMBUAT PENGGUNA.
Di jendela kueri baru, buat tabel uji menggunakan perintah T-SQL berikut ini:
USE MyMITestDB GO CREATE TABLE TestTable ( AccountNum varchar(10), City varchar(255), Name varchar(255), State varchar(2) );Buat koneksi di SSMS dengan pengguna yang dibuat. Anda akan melihat bahwa Anda tidak dapat melihat tabel TestTable yang dibuat oleh sysadmin sebelumnya. Kita perlu memberi pengguna izin untuk membaca data dari database.
Anda bisa memeriksa izin saat ini yang dimiliki pengguna dengan menjalankan perintah berikut:
SELECT * FROM sys.fn_my_permissions('MyMITestDB','DATABASE') GO
Tambahkan pengguna ke peran tingkat database
Agar pengguna dapat melihat data dalam database, kami dapat memberikan peran tingkat database kepada pengguna.
Masuk ke instans terkelola SQL Anda dengan akun sysadmin menggunakan SQL Server Management Studio.
Di Object Explorer, klik kanan server dan pilih Kueri Baru.
Berikan peran database db_datareader kepada pengguna Microsoft Entra dengan menggunakan sintaks T-SQL berikut:
Use <Database Name> -- provide your database name ALTER ROLE db_datareader ADD MEMBER user_name GOContoh berikut menyediakan pengguna
bob@aadsqlmi.netdan grup mygroup dengan izin db_datareader pada database MyMITestDB :USE MyMITestDB GO ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net] GO ALTER ROLE db_datareader ADD MEMBER [mygroup] GOPeriksa apakah pengguna Microsoft Entra yang dibuat dalam database ada dengan menjalankan perintah berikut:
SELECT * FROM sys.database_principals GOBuat koneksi baru ke instans terkelola SQL dengan pengguna yang telah ditambahkan ke peran db_datareader .
Perluas database di Object Explorer untuk melihat tabel.
Buka jendela kueri baru dan jalankan pernyataan berikut
SELECT:SELECT * FROM TestTableApakah Anda dapat melihat data dari tabel? Anda akan melihat kolom yang dikembalikan seperti yang ditunjukkan dalam cuplikan layar berikut:
Meniru login Microsoft Entra
SQL Managed Instance mendukung peniruan login Microsoft Entra.
Menguji peniruan
Masuk ke instans terkelola SQL Anda dengan akun sysadmin menggunakan SQL Server Management Studio.
Di Object Explorer, klik kanan server dan pilih Kueri Baru.
Di jendela kueri, gunakan perintah berikut ini untuk membuat prosedur baru yang disimpan:
USE MyMITestDB GO CREATE PROCEDURE dbo.usp_Demo WITH EXECUTE AS 'bob@aadsqlmi.net' AS SELECT user_name(); GOGunakan perintah berikut untuk melihat bahwa pengguna yang Anda tirukan saat menjalankan prosedur tersimpan adalah
bob@aadsqlmi.net.Exec dbo.usp_DemoUji peniruan dengan menggunakan
EXECUTE AS LOGINpernyataan:EXECUTE AS LOGIN = 'bob@aadsqlmi.net' GO SELECT SUSER_SNAME() REVERT GO
Catatan
Hanya login tingkat server SQL yang merupakan bagian dari peran sysadmin yang dapat menjalankan operasi berikut yang menargetkan perwakilan Microsoft Entra:
EXECUTE AS USEREXECUTE AS LOGIN
Menggunakan kueri lintas database
Kueri lintas database didukung untuk akun Microsoft Entra dengan login Microsoft Entra. Untuk menguji kueri lintas database dengan grup Microsoft Entra, kita perlu membuat database dan tabel lain. Anda dapat melewatkan pembuatan database dan tabel lain jika database dan tabel sudah ada.
Masuk ke instans terkelola SQL Anda dengan akun sysadmin menggunakan SQL Server Management Studio.
Di Object Explorer, klik kanan server dan pilih Kueri Baru.
Di jendela kueri, gunakan perintah berikut ini untuk membuat database bernama MyMITestDB2 dan tabel bernama TestTable2:
CREATE DATABASE MyMITestDB2; GO USE MyMITestDB2 GO CREATE TABLE TestTable2 ( EmpId varchar(10), FirstName varchar(255), LastName varchar(255), Status varchar(10) );Di jendela kueri baru, jalankan perintah berikut untuk membuat grup saya pengguna di database baru MyMITestDB2, dan berikan
SELECTizin pada database tersebut ke grup saya:USE MyMITestDB2 GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO GRANT SELECT TO [mygroup] GOMasuk ke instans terkelola SQL menggunakan SQL Server Management Studio sebagai anggota grup Microsoft Entra mygroup. Buka jendela kueri baru dan jalankan pernyataan lintas database
SELECT:USE MyMITestDB SELECT * FROM MyMITestDB2..TestTable2 GOAnda akan melihat hasil tabel dari TestTable2.
Skenario tambahan yang didukung
- Manajemen Agen SQL dan eksekusi pekerjaan didukung untuk login Microsoft Entra.
- Login Microsoft Entra dapat menjalankan operasi pencadangan dan pemulihan database.
- Audit semua pernyataan yang terkait dengan peristiwa masuk dan autentikasi Microsoft Entra.
- Koneksi administrator khusus untuk login Microsoft Entra yang merupakan anggota peran server sysadmin .
- Login Microsoft Entra didukung dengan menggunakan utilitas sqlcmd dan alat SQL Server Management Studio .
- Pemicu masuk didukung untuk peristiwa masuk yang berasal dari login Microsoft Entra.
- Service Broker dan DB mail dapat disiapkan menggunakan login Microsoft Entra.