Sysadmin olmayan hesapları SQL Server 2000 'da "xp_cmdshell" genişletilmiş saklı yordamını yürütmek için nasıl etkinleştirilir

Özet

Bu makalede, sysadmin sabit sunucu rolünün ÜYESI olmayan SQL oturumları tarafından kullanılacak Microsoft WINDOWS düzey SQL Server Agent proxy hesabını yapılandırma yöntemi açıklanır. Ayrıca makalede, bir proxy hesabını ayarlamaya çalıştığınızda oluşabilecek sorunları çözmenize yardımcı olacak bilgiler yer alır.

GİRİŞ

Xp_cmdshell genişletilmiş saklı yordamı Microsoft SQL Server 2000 Içinden bir Windows komut kabuğu çağırır. Xp_cmdshell genişletilmiş saklı yordamı sysadmin sabit sunucu rolünün bir üyesi tarafından yürütüldüğünde, komut kabuğunun Windows Işlemi SQL Server 'ın Windows hizmeti hesabının güvenlik bağlamında çalışır. Örneğin, SQL Server bilgisayarda yönetim haklarına sahip bir Windows oturum açma işlemi altında çalışıyorsa, xp_cmdshell genişletilmiş saklı yordamıyla bir komut istemi açan kullanıcı Windows 'a yerel yönetici olarak erişim alır. Varsayılan olarak, xp_cmdshell genişletilmiş saklı yordamı yürütme izni yalnızca sysadmin sabit sunucu rolünün üyelerine verilir. Bu izin, hakların etkinleşmesine yardımcı olur. Yeni Windows işlemlerini daha düşük bir hak düzeyiyle başlatmak istediğinizde, SQL Server Agent proxy hesabını kullanarak uygun haklara sahip bir Windows hesabı yapılandırabilirsiniz.

Ek Bilgi

Sysadmin sunucu rolünün üyesi olmayan bir SQL Server oturumundan uzatılmış saklı yordamı xp_cmdshell yürütmeye çalıştığınızda, SQL Server Agent proxy hesabı düzgün ayarlanmadıysa, aşağıdakine benzer hata iletileri alabilirsiniz:

İleti 50001, düzey 1, durum 50001 xpsql. cpp: GetProxyAccount 'den alınan hata 997 499

İleti 50001, düzey 1, durum 50001 xpsql. cpp: GetProxyAccount 'den alınan hata 317 499

İleti 50001, düzey 1, durum 50001 xpsql. cpp: hata 0 from 499 on GetProxyAccount

İleti 50001, düzey 1, durum 50001 xpsql. cpp: GetProxyAccount 'den alınan hata 87 499

Sysadmin olmayan kullanıcıların SQL Server 2000 ' de xp_cmdshell genişletilmiş saklı yordamını çalıştırmasını istiyorsanız, proxy HESABıNı ve SQL Server başlangıç hesabını yerel Yöneticiler grubunun bir üyesi olacak şekilde yapılandırmalısınız. SQL Server sysadmin sabit sunucu rolünün üyesi olmayan kullanıcıların işlerini veya komutlarını yürüttüğünde, SQL Server Aracısı ve xp_cmdshell genişletilmiş saklı yordamı proxy hesabını kullanır. Proxy hesabının Windows güvenlik kimlik bilgileri yerel güvenlik yetkilisi (LSA) gizlilikler veritabanında depolanır. Bu bilgilere yalnızca Windows yöneticileri erişebilir. Bu nedenle, SQL Server başlangıç hesabı yerel Yöneticiler grubunun üyesi değilse, Kullanıcı proxy hesabı olarak oturum açmak için Windows güvenlik kimlik bilgilerini depolayamaz ve xp_cmdshell genişletilmiş saklı yordamı başarısız olur. Sysadmin olmayan kullanıcıların xp_cmdshell genişletilmiş saklı yordamını çalıştırmasını sağlamak IÇIN, SQL Server başlangıç hesabı yerel Yöneticiler grubunun üyesi olmalıdır. Sysadmin sabit sunucu rolünün ÜYESI olmayan SQL Server oturumlarının proxy hesabını yapılandırmak için aşağıdaki yöntemlerden birini kullanın.

Yöntem 1: SQL Server Enterprise Manager 'ı kullanma

Windows hesabını yapılandırma

Windows hesabını, sysadmin olmayan kullanıcıları xp_cmdshell genişletilmiş saklı yordamı yürütecek şekilde ayarlamak için şu adımları izleyin:

  1. SQL Server Enterprise Manager 'ı başlatın.

  2. SQL Server Enterprise Manager 'da MICROSOFT SQL Server'ı ve sonra da SQL Server grubunugenişletin.

  3. Proxy hesabını ayarlamak istediğiniz SQL Server örneğini genişletin.

  4. Yönetimigenişletme, SQL Server Aracısı'Nı sağ tıklatın ve Özellikler'i tıklatın.

  5. SQL Server Aracısı özellikleri iletişim kutusunda, iş sistemi sekmesini tıklatın.

  6. Sysadmin dışı iş adımı proxy hesabıaltında, Yalnızca sysadmin ayrıcalıkları olan kullanıcılar, CmdExec ve ActiveScripting iş adımları onay kutusunu yürütebilir.

  7. SQL Server Agent proxy hesabıiletişim kutusunda, Kullanıcı adıkutusuna Windows hesabınızın adını yazın.

  8. Parola kutusuna Windows parolasını yazın.

  9. Etki alanı kutusuna Windows hesabının üyesi olduğu etki alanını yazın ve ardından Iki kez Tamam 'ı tıklatın.

SQL Server oturum açma hesabı ekleme

Xp_cmdshell genişletilmiş saklı yordamını yürütme izni vermek Istediğiniz SQL Server oturum açma hesabını eklemek için şu adımları izleyin:

  1. SQL Server Kurumsal Yöneticisi 'ndegüvenlik'i genişletin.

  2. Oturum açma bölmesinde, izin vermek Istediğiniz SQL Server oturum açma hesabını sağ tıklatın veÖzellikler'i tıklatın.Not Hesap henüz eklenmediyse, oturum açma hesabı olarak Windows proxy hesabı oluşturabilirsiniz.

  3. SQL Server oturum açma özellikleri iletişim kutusunda, veritabanı erişimi sekmesini tıklatın.

  4. Bu oturum açma listesinden hangi veritabanına erişilebileceğini belirtin listesinde, ana veritabanı için izin ver kutusunu tıklatın ve sonra Tamam'ı tıklatın.

  5. Veritabanlarınıgenişletin,ana şablonugenişletin ve sonra da depolanan yordamları Genişlet'i tıklatın.

  6. Genişletilmiş saklı yordamxp_cmdshell sağ tıklatın ve sonraÖzellikler'i tıklatın.

  7. Genişletilmiş saklı yordam özellikleri Iletişim kutusunda izinler'i tıklatın.

  8. Yürütme izinleri vermek istediğiniz SQL Server oturum açma hesabının yürütme iletişim kutusunu tıklatarak seçin ve ardından Iki kez Tamam 'a tıklayın.

Yöntem 2: Transact-SQL betiğini çalıştırmak

Windows hesabının xp_cmdshell genişletilmiş saklı yordamını yürütmesine olanak tanımak Için aşağıdaki Transact-SQL betiğini çalıştırın:

-- Set database to master.USE masterGO-- Add a valid Windows account as proxy account.EXECUTE xp_sqlagent_proxy_account N'SET'                        , N'<DomainName>'                        , N'<WindowsAccount>'                        , N'<WindowsPassword>'GO-- Get the proxy account to determine whether it is set up correctly. EXECUTE xp_sqlagent_proxy_account N'GET'GO-- Enable non-system administrators to run the job and to execute xp_cmdshell.EXECUTE msdb..sp_set_sqlagent_properties @sysadmin_only = 0GO

Not Bu betikte, <etkialanıadı> , Windows hesabının üyesi olduğu etki alanıdır. <WindowsAccount> Windows hesap adıdır. Windows hesabının parolası <windowsparola> . Xp_cmdshell genişletilmiş saklı yordamını yürütme izni vermek Istediğiniz SQL Server oturum açma hesabını eklemek için, aşağıdaki Transact-SQL betiğini çalıştırın:

USE masterGO-- Grant database access to the SQL Server login account that you want to provide access.EXEC sp_grantdbaccess '<SQLLogin>'GO-- Grant execute permission on xp_cmdshell to the SQL Server login account.GRANT exec ON xp_cmdshell TO <SQLLogin>GO

Not Bu komut dosyasında, <SQLLogin> , xp_cmdshell genişletilmiş saklı yordamı yürütme Izni vermek istediğiniz SQL Server oturum açdır.Not Ara hesap, güvenlik bağlamında SQL Server Aracısı işleri veya komut satırı komutları çalıştırılmakta olan Windows hesabıdır. SQL Server Agent proxy hesabı için Windows hesabını ayarlarken, hesaba Windows 'un "toplu iş olarak oturum aç" Kullanıcı hakkını vermeniz gerekir.

Başvurular

Genişletilmiş xp_cmdshell saklı yordamı hakkında daha fazla bilgi IÇIN, SQL Server Books Online 'Daki "Transact-SQL başvurusu" konusuna bakın. SQL Server Agent proxy hesabı hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitelerini ziyaret edin:

xp_sqlagent_proxy_accounthttp://msdn2.Microsoft.com/en-us/library/aa260700 (SQL. 80). aspxxp_cmdshellhttp://msdn2.Microsoft.com/en-us/library/aa369561.aspxWindows Hizmetleri hesaplarıhttp://msdn2.Microsoft.com/en-us/library/aa176564 (SQL. 80). aspxProxy hesabında uygun izinleri ayarlama hakkında daha fazla bilgi için, Microsoft Bilgi Bankası 'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:

283811 SQL Server 2000 veya SQL Server yapılandırma 2005 Yöneticisi 'nde SQL Server veya SQL Server 'da SQL Server Agent hizmet hesabını değiştirme

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Microsoft Insider 'a katılın

Bu bilgi yardımcı oldu mu?

Geri bildiriminiz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×