Membuat proksi SQL Server Agent
Berlaku untuk: SQL Server
Topik ini menjelaskan cara membuat proksi SQL Server Agent di SQL Server dengan menggunakan SQL Server Management Studio atau Transact-SQL.
Akun proksi SQL Server Agent menentukan konteks keamanan tempat langkah pekerjaan dapat berjalan. Setiap proksi sesuai dengan kredensial keamanan. Untuk mengatur izin untuk langkah pekerjaan tertentu, buat proksi yang memiliki izin yang diperlukan untuk subsistem SQL Server Agent, lalu tetapkan proksi tersebut ke langkah pekerjaan.
Pada Azure SQL Managed Instance, sebagian besar, tetapi tidak semua fitur SQL Server Agent saat ini didukung. Lihat Perbedaan T-SQL Azure SQL Managed Instance dari batasan pekerjaan SQL Server atau Agen SQL di SQL Managed Instance untuk detailnya.
Sebelum Anda mulai
Batasan dan Pembatasan
Anda harus membuat kredensial sebelum membuat proksi jika belum tersedia.
Proksi SQL Server Agent menggunakan kredensial untuk menyimpan informasi tentang akun pengguna Windows. Pengguna yang ditentukan dalam kredensial harus memiliki izin "Akses komputer ini dari jaringan" (
SeNetworkLogonRight
) pada komputer tempat SQL Server dijalankan.SQL Server Agent memeriksa akses subsistem untuk proksi dan memberikan akses ke proksi setiap kali langkah pekerjaan berjalan. Jika proksi tidak lagi memiliki akses ke subsistem, langkah pekerjaan gagal. Jika tidak, SQL Server Agent meniru pengguna yang ditentukan dalam proksi dan menjalankan langkah pekerjaan. Untuk daftar subsistem proksi, lihat sp_grant_proxy_to_subsystem.
Pembuatan proksi tidak mengubah izin untuk pengguna yang ditentukan dalam kredensial untuk proksi. Misalnya, Anda dapat membuat proksi untuk pengguna yang tidak memiliki izin untuk menyambungkan ke instans SQL Server. Dalam hal ini, langkah-langkah pekerjaan yang menggunakan proksi tersebut tidak dapat tersambung ke SQL Server.
Jika login untuk pengguna memiliki akses ke proksi, atau pengguna milik peran apa pun dengan akses ke proksi, pengguna dapat menggunakan proksi dalam langkah pekerjaan.
Keamanan
Izin
Hanya anggota peran server tetap sysadmin yang memiliki izin untuk membuat, memodifikasi, atau menghapus akun proksi. Pengguna yang bukan anggota peran server tetap sysadmin harus ditambahkan ke salah satu peran database tetap SQL Server Agent berikut dalam
msdb
database untuk menggunakan proksi: SQLAgentUserRole, SQLAgentReaderRole, atau SQLAgentOperatorRole.Memerlukan izin UBAH INFO MASUK APA PUN jika membuat kredensial selain proksi.
Menggunakan SQL Server Management Studio (SSMS)
Untuk membuat proksi SQL Server Agent
Di Object Explorer, pilih tanda plus untuk memperluas server tempat Anda ingin membuat proksi di SQL Server Agent.
Pilih tanda plus untuk memperluas SQL Server Agent.
Klik kanan folder Proksi dan pilih Proksi Baru.
Pada kotak dialog Akun Proksi Baru, pada halaman Umum , masukkan nama akun proksi di kotak Nama proksi.
Dalam kotak Nama kredensial, masukkan nama kredensial keamanan yang akan digunakan akun proksi.
Dalam kotak Deskripsi , masukkan deskripsi untuk akun proksi
Di bawah Aktif ke subsistem berikut, pilih subsistem atau subsistem yang sesuai untuk proksi ini.
Pada halaman Utama , tambahkan atau hapus login atau peran untuk memberikan atau menghapus akses ke akun proksi.
Setelah selesai, pilih OK.
Menggunakan Transact-SQL
Untuk membuat proksi SQL Server Agent
Di Object Explorer, sambungkan ke instans Mesin Database.
Pada bilah Standar, pilih Kueri Baru.
Skrip berikut membuat kredensial yang disebut
CatalogApplicationCredential
, membuat proksiCatalog application proxy
dan menetapkan kredensialCatalogApplicationCredential
ke dalamnya, dan memberikan akses proksi ke subsistem Scripting ActiveX. Salin dan tempel contoh berikut ke dalam jendela kueri dan pilih Jalankan.-- creates credential CatalogApplicationCredential USE msdb ; GO CREATE CREDENTIAL CatalogApplicationCredential WITH IDENTITY = 'REDMOND/TestUser', SECRET = 'G3$1o)lkJ8HNd!'; GO -- creates proxy "Catalog application proxy" and assigns -- the credential 'CatalogApplicationCredential' to it. EXEC dbo.sp_add_proxy @proxy_name = 'Catalog application proxy', @enabled = 1, @description = 'Maintenance tasks on catalog application.', @credential_name = 'CatalogApplicationCredential' ; GO -- grants the proxy "Catalog application proxy" access to -- the ActiveX Scripting subsystem. EXEC dbo.sp_grant_proxy_to_subsystem @proxy_name = N'Catalog application proxy', @subsystem_id = 2 ; GO