Genişletilmiş saklı yordamı SQL Server 2000'de [NULL]'ı "xp_cmdshell" yürütülecek olmayan sysadmin hesaplarını etkinleştirme

Makale çevirileri Makale çevirileri
Makale numarası: 890775 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede Windows düzeyinde Microsoft SQL Server Agent proxy hesabını sysadmin sabit sunucu rolü üyesi olmayan SQL oturum açma tarafından kullanılmak üzere yapılandırılması anlatılmaktadır. Ayrıca bu makale bir proxy hesabının. ayarlamaya çalıştığınızda oluşabilecek sorunları çözmesine yardımcı olmak için daha fazla bilgi için başvuruları içermektedir

Giriş

Genişletilmiş saklı yordamı xp_cmdshell bir Windows komut kabuğu tarafından Microsoft SQL Server 2000 içinde çalıştırır. Genişletilmiş saklı yordamı xp_cmdshellsysadmin sabit sunucu rolünün bir üyesi tarafından çalıştırıldığında, komut kabuğu <a1>Windows</a1> işlemi ile SQL Server'ın Windows hizmet hesabının güvenlik bağlamını çalıştırır. Örneğin, SQL Server çalıştıran bilgisayarda yönetimsel hakları olan bir Windows oturum açma altında genişletilmiş saklı yordamı xp_cmdshell ile bir komut istemi açan bir kullanıcı Windows erişim yerel yönetici olarak alırsınız. Varsayılan olarak, yalnızca üyelere sysadmin sabit sunucu rolü genişletilmiş saklı yordamı xp_cmdshell execute izni verilir. Bu izin, yükseltme haklarının önüne geçilmesine yardımcı olur.

Yeni Windows işlemleri, düşük düzeyde hakları başlatmak istediğinizde, uygun düzeyde hakları bir Windows hesabı yapılandırmak için SQL Server Agent proxy hesabını kullanabilirsiniz.

Daha fazla bilgi

Sunucu sysadmin rolünün üyesi olan bir SQL Server oturumu genişletilmiş saklı yordamı xp_cmdshell yürütülecek deneyin ve SQL Server Agent proxy hesabının doğru ayarlanmış değil, aşağıdakine benzer hata iletileri alabilirsiniz:
Msg 50001, Düzey 1, <a1>Durum</a1> 50001
xpsql.cpp: hata 997 GetProxyAccount 499 satırındaki gelen
Ileti 50001 50001, Düzey 1, durum
xpsql.cpp: gelen GetProxyAccount 499 satırındaki 317 hatası
Msg 50001, Düzey 1, <a1>Durum</a1> 50001
xpsql.cpp: GetProxyAccount 499 satırındaki alınan hata: 0
Msg 50001, Düzey 1, <a1>Durum</a1> 50001
xpsql.cpp: GetProxyAccount 499 satırındaki gelen hata 87
Bilgisayarınızda olmayan sysadmin kullanıcıların genişletilmiş saklı yordamı SQL Server 2000'de xp_cmdshell çalıştırmak, proxy hesabını ve SQL Server başlangıç hesap, yerel Yöneticiler grubunun bir üyesi olarak yapılandırmanız gerekir. SQL Server işleri veya sysadmin sabit sunucu rolü üyesi olmayan kullanıcılar için komutları yürütür, SQL Server Agent'ı ve genişletilmiş saklı yordamı xp_cmdshell proxy hesabını kullanın. Windows güvenlik kimlik bilgilerini proxy hesabının yerel güvenlik yetkilisi (LSA) gizli kod dizeleri veritabanında depolanır. Bu bilgiler, yalnızca Windows Yöneticiler erişebilir. Bu nedenle, SQL Server başlangıç hesap, yerel Yöneticiler grubunun bir üyesi değilse, kullanıcı edemiyor depolamak veya proxy hesabı olarak oturum açmak için Windows güvenlik kimlik bilgilerini almak ve xp_cmdshell saklı yordamı başarısız genişletilmiş. Genişletilmiş saklı yordamı xp_cmdshell olmayan sysadmin kullanıcıların etkinleştirmek için SQL Server başlangıç hesap, yerel Yöneticiler grubunun bir üyesi olmalıdır.

Bir proxy hesabı SQL için yapılandırılacak sysadmin üyeleri olan sunucu oturumları sabit sunucu rolü, aşağıdaki yöntemlerden birini kullanın.

Yöntem 1: SQL Server Enterprise Manager kullanma

Windows hesabını yapılandırma

Genişletilmiş saklı yordamı xp_cmdshell yürütülecek olmayan sysadmin kullanıcıların Windows hesabını ayarlamak için şu adımları izleyin:
  1. SQL Server Enterprise Manager'ı başlatın.
  2. SQL Server Enterprise Manager'da, Microsoft SQL Server ' ı genişletin ve sonra da SQL Server Group ' u genişletin.
  3. Proxy hesabını ayarlamak istediğiniz SQL Server örneği'ni genişletin.
  4. Yönetimi ' ni genişletin, sağ SQL Server Agent ve sonra da Özellikler ' i tıklatın.
  5. SQL Server aracısı özellikleri iletişim kutusunda, Proje sistem sekmesini tıklatın.
  6. Olmayan SysAdmin iş adım proxy hesabının altında SysAdmin ayrıcalıkları ile yalnızca belirli bir kullanıcı execute CmdExec ve ActiveScripting işlem adımları onay kutusunu temizlemek için tıklatın.
  7. SQL Server Agent proxy hesabını iletişim kutusuna Windows hesabının adını kullanıcı adı yazın kutusunu.
  8. Parola kutusuna Windows parolası.
  9. Etki alanı kutusuna Windows hesabının üyesi olduğu etki alanını yazın ve sonra iki kez Tamam ' ı tıklatın.

Bir SQL Server oturum açma hesabı ekleme

Bir SQL Server oturumu eklemek için xp_cmdshell yürütmek için genişletilmiş izinleri vermek istediğiniz hesabın saklı yordamını, şu adımları izleyin:
  1. SQL Server Kurumsal Manager'da Güvenlik ' i genişletin.
  2. Oturumu açma bölmesinde izni vermek istediğiniz SQL Server oturum açma hesabı'nı sağ tıklatın ve sonra da Properties ' i tıklatın.

    Not Hesabın zaten eklenmezse, oturum açma hesabı olarak bir <a0>Windows</a0> proxy hesabı oluşturabilirsiniz.
  3. SQL Server Login Properties iletişim kutusunda, Veritabanı erişimi sekmesini tıklatın.
  4. Veritabanı erişilen bu oturum tarafından belirt listesinde ana veritabanı için izin ver onay kutusunu tıklatıp seçin ve Tamam ' ı tıklatın.
  5. Veritabanları ' nı genişletin, asıl ' ı genişletin ve Uzatma Stored Procedures ' ı tıklatın.
  6. Bulun ve genişletilmiş saklı yordamı xp_cmdshell farenin sağ düğmesiyle tıklayın ve sonra da Properties ' i tıklatın.
  7. Içinde genişletilmiş saklı yordam özellikleri iletişim kutusunda, izinler ' i tıklatın.
  8. SQL Server oturum açma hesabı, vermek istediğiniz yürütme izinleri için EXEC</a1> onay kutusunu tıklatıp seçin ve sonra da iki kez Tamam ' ı tıklatın.

Yöntem 2: bir Transact-SQL komut dosyasını çalıştır

Wındows etkinleştirmek için aşağıdaki Transact-SQL komut dosyası hesap genişletilmiş saklı yordamı xp_cmdshell yürütmek için çalışma:
-- Set database to master.
USE master
GO

-- 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 = 0
GO
Bu komut, Not<DomainName> Windows hesabının üyesi olduğu etki alanıdır. <WindowsAccount> Windows hesap adı değil. <WindowsPassword> Windows hesabının parolasıdır.

Genişletilmiş saklı yordamı xp_cmdshell yürütme izni vermek istediğiniz SQL Server oturum açma hesabı eklemek için <a0></a0>, aşağıdaki Transact-SQL komut dosyasını çalıştırın: <a1>
USE master
GO

-- 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
Bu komut, Not<SQLLogin>xp_cmdshell yürütme izni vermek istediğiniz SQL Server oturumu genişletilmiş saklı yordamı.

Not Proxy hesabını, SQL Server Agent işlerin veya komut satırı komutları, güvenlik içeriğinde çalışan Windows hesabıdır. SQL Server Agent proxy hesabının Windows hesabı ayarladığınızda, bu hesabın Windows düzeyi "toplu iş olarak oturum aç" kullanıcı hakkı vermeniz gerekir.

Referanslar

Genişletilmiş saklı yordamı xp_cmdshell hakkında daha fazla bilgi için SQL Server Books Online'da "Transact-SQL başvuru" konusuna bakın.

SQL Server Agent proxy hesabını hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitelerini ziyaret edin:
xp_sqlagent_proxy_account
http://msdn2.microsoft.com/en-us/library/aa260700(SQL.80).aspx

xp_cmdshell
http://msdn2.microsoft.com/en-us/library/aa369561.aspx

Windows Hizmetleri hesapları ayarlama
http://msdn2.microsoft.com/en-us/library/aa176564(SQL.80).aspx
Proxy hesabını üzerinde uygun izinleri ayarlama hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
283811SQL Server 2000'de SQL Enterprise Manager veya SQL Server 2005'te SQL Server Configuration Manager'ı kullanmadan, SQL Server veya SQL Server Agent hizmet hesabı değiştirme

Özellikler

Makale numarası: 890775 - Last Review: 2 Haziran 2008 Pazartesi - Gözden geçirme: 3.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2000 Standard Edition
Anahtar Kelimeler: 
kbmt kbinfo kbhowto KB890775 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:890775

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com