Bir Veritabanı Sunucusunu Web Dağıtımı Yayımlama için YapılandırmaConfiguring a Database Server for Web Deploy Publishing

Jason Lee tarafındanby Jason Lee

PDF 'YI indirDownload PDF

Bu konuda, Web dağıtımı ve yayımlamayı desteklemek üzere SQL Server 2008 R2 veritabanı sunucusunun nasıl yapılandırılacağı açıklanmaktadır.This topic describes how to configure a SQL Server 2008 R2 database server to support web deployment and publishing.

Bu konuda açıklanan görevler her dağıtım senaryosunda—ortaktır, Web sunucularınızın IIS Web Dağıtım aracı (Web dağıtımı) uzak Aracı hizmeti, Web dağıtımı işleyicisi veya çevrimdışı dağıtım ya da uygulamanızın tek bir Web sunucusunda veya bir sunucu grubunda çalışıyor olması için yapılandırılmış olup olmadığı önemi yoktur.The tasks described in this topic are common to every deployment scenario—it doesn't matter whether your web servers are configured to use the IIS Web Deployment Tool (Web Deploy) Remote Agent Service, the Web Deploy Handler, or offline deployment or your application is running on a single web server or a server farm. Veritabanını dağıtmanın yolu, güvenlik gereksinimlerine ve diğer noktalara göre değişebilir.The way you deploy the database may change according to security requirements and other considerations. Örneğin, veritabanını örnek verilerle veya olmayan bir şekilde dağıtabilir ve Kullanıcı rolü eşlemelerini dağıtabilir veya dağıtımdan sonra el ile yapılandırabilirsiniz.For example, you might deploy the database with or without sample data, and you might deploy user role mappings or configure them manually after deployment. Ancak, veritabanı sunucusunu yapılandırdığınız Yöntem aynı kalır.However, the way you configure the database server remains the same.

Web dağıtımını desteklemek üzere bir veritabanı sunucusunu yapılandırmak için ek ürün veya araç yüklemenize gerek yoktur.You don't have to install any additional products or tools to configuring a database server to support web deployment. Veritabanı sunucunuzun ve Web sunucunuzun farklı makinelerde çalıştığı kabul edildiğinde, şunları yapmanız yeterlidir:Assuming that your database server and your web server run on different machines, you simply need to:

  • SQL Server TCP/IP kullanarak iletişim kurmasına izin verme.Permit SQL Server to communicate using TCP/IP.
  • Tüm güvenlik duvarları üzerinden SQL Server trafiğe izin verin.Allow SQL Server traffic through any firewalls.
  • Web sunucusu makine hesabına SQL Server bir oturum açma hakkı verin.Give the web server machine account a SQL Server login.
  • Makine hesabı oturum açma bilgilerini gerekli veritabanı rolleriyle eşleyin.Map the machine account login to any required database roles.
  • SQL Server bir oturum açma ve veritabanı Oluşturucu izinleri için dağıtımı çalıştıracak hesaba izin verin.Give the account that will run the deployment a SQL Server login and database creator permissions.
  • Yineleme dağıtımlarını desteklemek için, dağıtım hesabı oturum açma bilgilerini db_Owner veritabanı rolüyle eşleyin.To support repeat deployments, map the deployment account login to the db_owner database role.

Bu konu, bu yordamların her birini nasıl gerçekleştirekullanacağınızı gösterir.This topic will show you how to perform each of these procedures. Bu konudaki görevler ve izlenecek yollar, Windows Server 2008 R2 üzerinde çalışan bir SQL Server 2008 R2 varsayılan örneğiyle başladığınızı varsayar.The tasks and walkthroughs in this topic assume that you're starting with a default instance of SQL Server 2008 R2 running on Windows Server 2008 R2. Devam etmeden önce aşağıdakileri doğrulayın:Before you continue, ensure that:

  • Windows Server 2008 R2 Service Pack 1 ve tüm kullanılabilir güncelleştirmeler yüklendi.Windows Server 2008 R2 Service Pack 1 and all available updates are installed.
  • Sunucu etki alanına katılmış.The server is domain-joined.
  • Sunucunun statik bir IP adresi vardır.The server has a static IP address.
  • SQL Server 2008 R2 Service Pack 1 ve tüm kullanılabilir güncelleştirmeler yüklendi.SQL Server 2008 R2 Service Pack 1 and all available updates are installed.

SQL Server örneği yalnızca, herhangi bir SQL Server yüklemesinde otomatik olarak dahil edilen Database Engine Services rolünü içermelidir.The SQL Server instance only needs to include the Database Engine Services role, which is included automatically in any SQL Server installation. Ancak, yapılandırma ve bakım kolaylığı için Yönetim Araçları – temel ve Yönetim Araçları – tüm sunucu rolleri dahil etmenizi öneririz.However, for ease of configuration and maintenance, we recommend that you include the Management Tools – Basic and Management Tools – Complete server roles.

Note

Bilgisayarları etki alanına katma hakkında daha fazla bilgi için bkz. bilgisayarları etki alanına katma ve oturum açma.For more information on joining computers to a domain, see Joining Computers to the Domain and Logging On. Statik IP adreslerini yapılandırma hakkında daha fazla bilgi için bkz. STATIK IP adresi yapılandırma.For more information on configuring static IP addresses, see Configure a Static IP Address. SQL Server yükleme hakkında daha fazla bilgi için bkz. SQL Server 2008 R2 'Yi yükleme.For more information on installing SQL Server, see Installing SQL Server 2008 R2.

SQL Server uzaktan erişimi etkinleştirEnable Remote Access to SQL Server

SQL Server uzak bilgisayarlarla iletişim kurmak için TCP/IP kullanır.SQL Server uses TCP/IP to communicate with remote computers. Veritabanı sunucunuz ve Web sunucunuz farklı makinelerinizde şunları yapmanız gerekir:If your database server and your web server are on different machines, you need to:

  • TCP/IP üzerinden iletişime izin vermek için SQL Server ağ ayarlarını yapılandırın.Configure SQL Server networking settings to allow communication over TCP/IP.
  • SQL Server örneğinin kullandığı bağlantı noktalarında TCP trafiğine (ve bazı durumlarda Kullanıcı Datagram Protokolü (UDP) trafiğine) izin vermek için herhangi bir donanım veya yazılım güvenlik duvarı yapılandırın.Configure any hardware or software firewalls to allow TCP traffic (and in some cases User Datagram Protocol (UDP) traffic) on the ports that the SQL Server instance uses.

SQL Server TCP/IP üzerinden iletişim kurmak üzere etkinleştirmek için SQL Server Yapılandırma Yöneticisi kullanarak SQL Server örneğinizin ağ yapılandırmasını değiştirin.To enable SQL Server to communicate over TCP/IP, use SQL Server Configuration Manager to change the network configuration for your SQL Server instance.

SQL Server TCP/IP kullanarak iletişim kurmak üzere etkinleştirmek içinTo enable SQL Server to communicate using TCP/IP

  1. Başlat menüsünde tüm programlar' ın üzerine gelin, Microsoft SQL Server 2008 R2' ye tıklayın, yapılandırma araçları' a ve ardından SQL Server Yapılandırma Yöneticisi' ye tıklayın.On the Start menu, point to All Programs, click Microsoft SQL Server 2008 R2, click Configuration Tools, and then click SQL Server Configuration Manager.

  2. Ağaç görünümü bölmesinde SQL Server ağ yapılandırması' nı genişletin ve ardından MSSQLSERVER protokolleri' ne tıklayın.In the tree view pane, expand SQL Server Network Configuration, and then click Protocols for MSSQLSERVER.

    Note

    Birden çok SQL Server örneği yüklediyseniz, her örnek için[örnek adı] öğesi için bir protokollergörürsünüz.If you have installed multiple instances of SQL Server, you'll see a Protocols for[instance name] item for each instance. Örnek temelinde ağ ayarlarını yapılandırmanız gerekir.You need to configure network settings on an instance-by-instance basis.

  3. Ayrıntılar bölmesinde TCP/IP satırına sağ tıklayın ve ardından Etkinleştir' e tıklayın.In the details pane, right-click the TCP/IP row, and then click Enable.

  4. Uyarı Iletişim kutusunda Tamam' a tıklayın.In the Warning dialog box, click OK.

  5. Yeni ağ yapılandırmanızın etkili olabilmesi için MSSQLSERVER hizmetini yeniden başlatmanız gerekir.You need to restart the MSSQLSERVER service before your new network configuration will take effect. Bunu, bir komut isteminde, hizmetler konsolundan veya SQL Server Management Studio ' den yapabilirsiniz.You can do that at a command prompt, from the Services console, or from SQL Server Management Studio. Bu yordamda SQL Server Management Studio kullanacaksınız.In this procedure, you'll use SQL Server Management Studio.

  6. SQL Server Yapılandırma Yöneticisi’ni kapatın.Close SQL Server Configuration Manager.

  7. Başlat menüsünde tüm programlar' ın üzerine gelin, Microsoft SQL Server 2008 R2' ye ve ardından SQL Server Management Studio' e tıklayın.On the Start menu, point to All Programs, click Microsoft SQL Server 2008 R2, and then click SQL Server Management Studio.

  8. Sunucuya Bağlan iletişim kutusunda, sunucu adı kutusuna veritabanı sunucusunun adını yazın ve ardından Bağlan' a tıklayın.In the Connect to Server dialog box, in the Server name box, type the name of the database server, and then click Connect.

  9. Nesne Gezgini bölmesinde, üst sunucu düğümüne (örneğin, TESTDB1) sağ tıklayın ve ardından Yeniden Başlat' a tıklayın.In the Object Explorer pane, right-click the parent server node (for example, TESTDB1), and then click Restart.

  10. Microsoft SQL Server Management Studio Iletişim kutusunda Evet' e tıklayın.In the Microsoft SQL Server Management Studio dialog box, click Yes.

  11. Hizmet yeniden başlatıldığında SQL Server Management Studio kapatın.When the service has restarted, close SQL Server Management Studio.

Bir güvenlik duvarı üzerinden SQL Server trafiğe izin vermek için, önce SQL Server örneğinizin kullandığı bağlantı noktalarını bilmeniz gerekir.To allow SQL Server traffic through a firewall, you first need to know which ports your SQL Server instance is using. Bu, SQL Server örneğinin nasıl oluşturulduğuna ve yapılandırıldığına bağlıdır:This will depend on how the SQL Server instance was created and configured:

  • SQL Server varsayılan örneği , TCP bağlantı noktası 1433 ' deki istekleri dinler (ve yanıt verir).A default instance of SQL Server listens for (and responds to) requests on TCP port 1433.
  • Adlandırılmış bir SQL Server örneği , dinamik olarak atanan TCP bağlantı noktasındaki istekleri dinler (ve yanıt verir).A named instance of SQL Server listens for (and responds to) requests on a dynamically assigned TCP port.
  • SQL Server Browser hizmeti etkinleştirilmişse istemciler, belirli bir SQL Server örneği için hangi TCP bağlantı noktasının kullanılacağını öğrenmek üzere UDP bağlantı noktası 1434 ' de hizmeti sorgulayabilir.If the SQL Server Browser service is enabled, clients can query the service on UDP port 1434 to find out which TCP port to use for a particular SQL Server instance. Ancak, bu hizmet genellikle güvenlik nedenleriyle devre dışıdır.However, this service is often disabled for security reasons.

SQL Server varsayılan bir örneğini kullandığınızı varsayarsak, güvenlik duvarınızı trafiğe izin verecek şekilde yapılandırmanız gerekir.Assuming that you're using a default instance of SQL Server, you need to configure your firewall to allow traffic.

YönDirection Bağlantı noktasındanFrom Port Bağlantı noktasıTo Port Bağlantı noktası türüPort Type
GelenInbound Herhangi biriAny 14331433 TCPTCP
GidenOutbound 14331433 Herhangi biriAny TCPTCP

Note

Teknik olarak, bir istemci bilgisayar SQL Server ile iletişim kurmak için 1024 ile 5000 arasında rastgele atanan bir TCP bağlantı noktası kullanır ve güvenlik duvarı kurallarınızı uygun şekilde kısıtlayabilirsiniz.Technically, a client computer will use a randomly assigned TCP port between 1024 and 5000 to communicate with SQL Server, and you can restrict your firewall rules accordingly. SQL Server bağlantı noktaları ve güvenlik duvarları hakkında daha fazla bilgi için bkz. bir güvenlik duvarı ÜZERINDEN SQL ile iletişim kurmak için gereken TCP/IP bağlantı noktası numaraları ve nasıl yapılır: belirli bir TCP bağlantı noktasını dinlemek üzere sunucu yapılandırma (SQL Server Yapılandırma Yöneticisi).For more information on SQL Server ports and firewalls, see TCP/IP port numbers required to communicate to SQL over a firewall and How to: Configure a Server to Listen on a Specific TCP Port (SQL Server Configuration Manager).

Çoğu Windows Server ortamında, büyük olasılıkla veritabanı sunucusunda Windows Güvenlik Duvarı 'nı yapılandırmanız gerekecektir.In most Windows Server environments, you'll likely have to configure Windows Firewall on the database server. Varsayılan olarak, bir kural özel olarak yasaklamadığı takdirde Windows Güvenlik Duvarı tüm giden trafiğe izin verir.By default, Windows Firewall allows all outbound traffic unless a rule specifically prohibits it. Web sunucunuzun veritabanınıza ulaşmasını sağlamak için, SQL Server örneğinin kullandığı bağlantı noktası numarasında TCP trafiğine izin veren bir gelen kuralı yapılandırmanız gerekir.To enable your web server to reach your database, you need to configure an inbound rule that allows TCP traffic on the port number that the SQL Server instance uses. SQL Server varsayılan bir örneğini kullanıyorsanız, bu kuralı yapılandırmak için sonraki yordamı kullanabilirsiniz.If you're using a default instance of SQL Server, you can use the next procedure to configure this rule.

Windows güvenlik duvarını varsayılan bir SQL Server örneğiyle iletişime izin verecek şekilde yapılandırmak içinTo configure Windows Firewall to allow communication with a default SQL Server instance

  1. Veritabanı sunucusunda, Başlat menüsünde, Yönetim Araçları' nın üzerine gelin ve ardından Gelişmiş Güvenlik Özellikli Windows Güvenlik Duvarı' na tıklayın.On the database server, on the Start menu, point to Administrative Tools, and then click Windows Firewall with Advanced Security.

  2. Ağaç görünümü bölmesinde gelen kuralları' na tıklayın.In the tree view pane, click Inbound Rules.

  3. Eylemler bölmesinde, gelen kurallarıaltında Yeni kural' a tıklayın.In the Actions pane, under Inbound Rules, click New Rule.

  4. Yeni gelen kuralı sihirbazında, kural türü sayfasında, bağlantı noktası' nı seçin ve ardından İleri' ye tıklayın.In the New Inbound Rule Wizard, on the Rule Type page, select Port, and then click Next.

  5. Protokol ve bağlantı noktaları sayfasında, TCP ' nin seçili olduğundan emin olun ve belirli yerel bağlantı noktaları kutusunda 1433yazın ve ardından İleri' ye tıklayın.On the Protocol and Ports page, ensure that TCP is selected, and in the Specific local ports box, type 1433, and then click Next.

  6. Eylem sayfasında, bağlantıya izin ver ' i seçili bırakın ve İleri' ye tıklayın.On the Action page, leave Allow the connection selected and click Next.

  7. Profil sayfasında, etki alanını seçili bırakın, özel ve genel onay kutularını temizleyin ve ardından İleri' ye tıklayın.On the Profile page, leave Domain selected, clear the Private and Public check boxes, and then click Next.

  8. Ad sayfasında, kurala uygun şekilde açıklayıcı bir ad verin (örneğin, varsayılan örnek SQL Server: ağ erişimi) ve ardından son' a tıklayın.On the Name page, give the rule a suitably descriptive name (for example, SQL Server default instance – network access), and then click Finish.

SQL Server için Windows Güvenlik Duvarı 'nı yapılandırma hakkında daha fazla bilgi için, özellikle standart olmayan veya dinamik bağlantı noktaları üzerinden SQL Server ile iletişim oluşturmanız gerekiyorsa, bkz. nasıl yapılır: veritabanı altyapısı Için Windows güvenlik duvarını yapılandırma.For more information on configuring Windows Firewall for SQL Server, particularly if you need to communicate with SQL Server over non-standard or dynamic ports, see How to: Configure a Windows Firewall for Database Engine Access.

Oturum açmaları ve veritabanı Izinlerini yapılandırmaConfigure Logins and Database Permissions

Bir Web uygulamasını Internet Information Services (IIS) uygulamasına dağıttığınızda, uygulama uygulama havuzunun kimliğini kullanarak çalışır.When you deploy a web application to Internet Information Services (IIS), the application runs using the identity of the application pool. Bir etki alanı ortamında, uygulama havuzu kimlikleri ağ kaynaklarına erişmek için çalıştıkları sunucunun makine hesabını kullanır.In a domain environment, application pool identities use the machine account of the server on which they run to access network resources. Makine hesapları [etki alanı adı]</strong >[makine adı] $ —Örneğin, FABRIKAM\TESTWEB1 $.Machine accounts take the form [domain name]</strong>[machine name]$—for example, FABRIKAM\TESTWEB1$. Web uygulamanızın bir veritabanına ağ üzerinden erişmesine izin vermek için şunları yapmanız gerekir:To allow your web application to access a database across the network, you need to:

  • SQL Server örneğine Web sunucusu makine hesabı için bir oturum açma ekleyin.Add a login for the web server machine account to the SQL Server instance.
  • Makine hesabı oturum açma bilgilerini gerekli veritabanı rolleriyle eşleyin (genellikle db_DataReader ve DB_DataWriter).Map the machine account login to any required database roles (typically db_datareader and db_datawriter).

Web uygulamanız tek bir sunucu yerine bir sunucu grubu üzerinde çalışıyorsa, sunucu grubundaki her Web sunucusu için bu yordamları tekrarlamanız gerekir.If your web application is running on a server farm, rather than a single server, you'll need to repeat these procedures for every web server in the server farm.

Note

Uygulama havuzu kimlikleri ve ağ kaynaklarına erişme hakkında daha fazla bilgi için bkz. uygulama havuzu kimlikleri.For more information on application pool identities and accessing network resources, see Application Pool Identities.

Bu görevlere çeşitli şekillerde yaklaşıtırabilirsiniz.You can approach these tasks in various ways. Oturum açma bilgilerini oluşturmak için şunlardan birini yapabilirsiniz:To create the login, you can either:

  • Transact-SQL veya SQL Server Management Studio kullanarak veritabanı sunucusunda oturum açmayı el ile oluşturun.Create the login manually on the database server, using Transact-SQL or SQL Server Management Studio.
  • Oturum açma oluşturmak ve dağıtmak için Visual Studio 'da bir SQL Server 2008 sunucu projesi kullanın.Use a SQL Server 2008 Server Project in Visual Studio to create and deploy the login.

SQL Server oturum açma, veritabanı düzeyindeki bir nesne yerine sunucu düzeyindeki bir nesnedir, bu nedenle dağıtmak istediğiniz veritabanına bağlı değildir.A SQL Server login is a server-level object, rather than a database-level object, so it's not dependent on the database you want to deploy. Bu nedenle, oturum açmayı dilediğiniz zaman oluşturabilirsiniz ve en kolay yaklaşım, veritabanlarını dağıtmaya başlamadan önce oturum açma bilgilerini veritabanı sunucusunda el ile oluşturmak için kullanılır.As such, you can create the login at any point, and the easiest approach is often to create the login manually on the database server before you start deploying databases. SQL Server Management Studio bir oturum açma oluşturmak için sonraki yordamı kullanabilirsiniz.You can use the next procedure to create a login in SQL Server Management Studio.

Web sunucusu makine hesabı için SQL Server oturum açma oluşturmak içinTo create a SQL Server login for the web server machine account

  1. Veritabanı sunucusunda, Başlat menüsünde tüm programlar' ın üzerine gelin, Microsoft SQL Server 2008 R2' ye ve ardından SQL Server Management Studio' e tıklayın.On the database server, on the Start menu, point to All Programs, click Microsoft SQL Server 2008 R2, and then click SQL Server Management Studio.

  2. Sunucuya Bağlan iletişim kutusunda, sunucu adı kutusuna veritabanı sunucusunun adını yazın ve ardından Bağlan' a tıklayın.In the Connect to Server dialog box, in the Server name box, type the name of the database server, and then click Connect.

  3. Nesne Gezgini bölmesinde, güvenlik' e sağ tıklayın, Yeni' nin üzerine gelin ve ardından oturum aç' a tıklayın.In the Object Explorer pane, right-click Security, point to New, and then click Login.

  4. Oturum açma – yeni iletişim kutusunda, oturum açma adı kutusuna Web sunucusu makine hesabınızın adını yazın (örneğin, FABRIKAM\TESTWEB1 $ ).In the Login – New dialog box, in the Login name box, type the name of your web server machine account (for example, FABRIKAM\TESTWEB1$).

  5. Tamam’a tıklayın.Click OK.

Bu noktada, veritabanı sunucunuz Web Dağıtımı yayımlama için hazırlayın.At this point, your database server is ready for Web Deploy publishing. Ancak, dağıttığınız tüm çözümler, makine hesabı oturum açma bilgilerini gerekli veritabanı rolleriyle eşleştirene kadar çalışmayacaktır.However, any solutions you deploy won't work until you map the machine account login to the required database roles. Veritabanını dağıtana kadar rolleri eşleyene kadar, oturum açmayı veritabanı rolleriyle eşlemek çok daha fazla düşünmelidir.Mapping the login to database roles requires a lot more thought, as you can't map roles until after you've deployed the database. Makine hesabı oturum açma bilgilerini gerekli veritabanı rolleriyle eşlemek için şunlardan birini yapabilirsiniz:To map the machine account login to the required database roles, you can either:

  • Veritabanını ilk kez dağıttıktan sonra, veritabanı rollerini el ile oturum açmaya atayın.Assign the database roles to the login manually, after you've deployed the database for the first time.
  • Veritabanı rollerini oturum açmaya atamak için dağıtım sonrası bir betik kullanın.Use a post-deployment script to assign the database roles to the login.

Oturum açma ve veritabanı rol eşlemelerinin oluşturulmasını otomatikleştirme hakkında daha fazla bilgi için bkz. test ortamlarına veritabanı rolü üyelikleri dağıtma.For more information on automating the creation of logins and database role mappings, see Deploying Database Role Memberships to Test Environments. Alternatif olarak, makine hesabı oturum açma bilgilerini gerekli veritabanı rolleriyle el ile eşlemek için bir sonraki yordamı kullanabilirsiniz.Alternatively, you can use the next procedure to map the machine account login to the required database roles manually. Veritabanını dağıtana kadar bu yordamı gerçekleştireemiyorum unutmayın.Remember that you can't perform this procedure until after you've deployed the database.

Veritabanı rollerini Web sunucusu makine hesabı oturum açmayla eşlemek içinTo map database roles to the web server machine account login

  1. SQL Server Management Studio önceki olarak açın.Open SQL Server Management Studio as before.

  2. Nesne Gezgini bölmesinde, güvenlik düğümünü genişletin, oturum açmalar düğümünü genişletin ve ardından makine hesabı oturum açma bilgilerini (örneğin, FABRIKAM\TESTWEB1 $ ) çift tıklatın.In the Object Explorer pane, expand the Security node, expand the Logins node, and then double-click the machine account login (for example, FABRIKAM\TESTWEB1$).

  3. Oturum açma özellikleri Iletişim kutusunda Kullanıcı eşleme' ye tıklayın.In the Login Properties dialog box, click User Mapping.

  4. Bu oturum açmaya eşlenen kullanıcılar tablosuna veritabanınızın adını (örneğin, ContactManager) seçin.In the Users mapped to this login table, select the name of your database (for example, ContactManager).

  5. Veritabanı rolü üyeliği: [veritabanı adı] listesinde, gerekli izinleri seçin.In the Database role membership for: [database name] list, select the permissions required. Contact Manager örnek çözümü söz konusu olduğunda, db_DataReader ve DB_DataWriter rollerini seçmeniz gerekir.In the case of the Contact Manager sample solution, you must select the db_datareader and db_datawriter roles.

  6. Tamam’a tıklayın.Click OK.

Veritabanı rollerini el ile eşleme, genellikle test ortamları için yeterli olduğundan, hazırlama veya üretim ortamlarında otomatik veya tek tıklamayla dağıtımlar için daha az tercih edilir.While manually mapping database roles is often more than adequate for test environments, it's less desirable for automated or one-click deployments to staging or production environments. Bu tür bir görevi otomatikleştirme hakkında daha fazla bilgiyi, veritabanı rolü üyeliklerini test ortamlarına dağıtmabölümünde dağıtım sonrası betikleri kullanarak bulabilirsiniz.You can find more information on automating this kind of task using post-deployment scripts in Deploying Database Role Memberships to Test Environments.

Note

Sunucu projeleri ve veritabanı projeleri hakkında daha fazla bilgi için bkz. Visual Studio 2010 SQL Server veritabanı projeleri.For more information on server projects and database projects, see Visual Studio 2010 SQL Server Database Projects.

Dağıtım hesabı için Izinleri yapılandırmaConfigure Permissions for the Deployment Account

Dağıtımı çalıştırmak için kullanacağınız hesap SQL Server yönetici değilse, bu hesap için de bir oturum açma oluşturmanız gerekir.If the account that you'll use to run the deployment is not a SQL Server administrator, you'll also need to create a login for this account. Veritabanını oluşturmak için, hesabın dbcreator sunucu rolünün bir üyesi olması veya eşdeğer izinlere sahip olması gerekir.In order to create the database, the account must be a member of the dbcreator server role or have equivalent permissions.

Note

Bir veritabanını dağıtmak için Web Dağıtımı veya VSDBCMD kullandığınızda, Windows kimlik bilgilerini veya SQL Server kimlik bilgilerini (SQL Server Örneğiniz karma mod kimlik doğrulamasını destekleyecek şekilde yapılandırıldıysa) kullanabilirsiniz.When you use Web Deploy or VSDBCMD to deploy a database, you can use Windows credentials or SQL Server credentials (if your SQL Server instance is configured to support mixed mode authentication). Sonraki yordamda, Windows kimlik bilgilerini kullanmak istediğiniz varsayılır, ancak dağıtımı yapılandırırken bağlantı dizeniz SQL Server Kullanıcı adı ve parola belirtmekten dolayı hiçbir şey yapılmadı.The next procedure assumes that you want to use Windows credentials, but there's nothing stopping you from specifying a SQL Server user name and password in your connection string when you configure the deployment.

Dağıtım hesabı için izinleri ayarlamak içinTo set up permissions for the deployment account

  1. SQL Server Management Studio önceki olarak açın.Open SQL Server Management Studio as before.

  2. Nesne Gezgini bölmesinde, güvenlik' e sağ tıklayın, Yeni' nin üzerine gelin ve ardından oturum aç' a tıklayın.In the Object Explorer pane, right-click Security, point to New, and then click Login.

  3. Oturum açma – yeni iletişim kutusunda, oturum açma adı kutusuna dağıtım hesabınızın adını yazın (örneğin, FABRIKAM\matt).In the Login – New dialog box, in the Login name box, type the name of your deployment account (for example, FABRIKAM\matt).

  4. Sayfa seç bölmesinde, sunucu rolleri' ne tıklayın.In the Select a page pane, click Server Roles.

  5. Dbcreatoröğesini seçin ve ardından Tamam' a tıklayın.Select dbcreator, and then click OK.

Sonraki dağıtımları desteklemek için, ilk dağıtımdan sonra veritabanı _sahibi rolüne dağıtım hesabını da eklemeniz gerekir.To support subsequent deployments, you'll also need to add the deploying account to the db_owner role on the database after the first deployment. Bunun nedeni, sonraki dağıtımlarda yeni bir veritabanı oluşturmak yerine var olan bir veritabanının şemasını değiştirmekte olursunuz.This is because on subsequent deployments you're modifying the schema of an existing database, rather than creating a new database. Önceki bölümde açıklandığı gibi, bir veritabanı rolüne, daha belirgin nedenlerle veritabanını oluşturana kadar bir kullanıcı ekleyemezsiniz.As described in the previous section, you can't add a user to a database role until you've created the database, for obvious reasons.

Dağıtım hesabı oturum açma bilgilerini DB_Owner veritabanı rolüyle eşlemek içinTo map the deployment account login to the db_owner database role

  1. SQL Server Management Studio önceki olarak açın.Open SQL Server Management Studio as before.

  2. Nesne Gezgini penceresinde güvenlik düğümünü genişletin, oturum açmalar düğümünü genişletin ve ardından makine hesabı oturum açma bilgilerini (örneğin, FABRIKAM\matt) çift tıklatın.In the Object Explorer window, expand the Security node, expand the Logins node, and then double-click the machine account login (for example, FABRIKAM\matt).

  3. Oturum açma özellikleri Iletişim kutusunda Kullanıcı eşleme' ye tıklayın.In the Login Properties dialog box, click User Mapping.

  4. Bu oturum açmaya eşlenen kullanıcılar tablosuna veritabanınızın adını (örneğin, ContactManager) seçin.In the Users mapped to this login table, select the name of your database (for example, ContactManager).

  5. Veritabanı rolü üyeliği: [veritabanı adı] listesinde, DB_Owner rolünü seçin.In the Database role membership for: [database name] list, select the db_owner role.

  6. Tamam’a tıklayın.Click OK.

SonuçConclusion

Veritabanı sunucunuz artık uzak veritabanı dağıtımlarını kabul etmeye ve uzak IIS Web sunucularının veritabanlarınıza erişmesine izin verecek şekilde hazır olmalıdır.Your database server should now be ready to accept remote database deployments and to allow remote IIS web servers to access your databases. Veritabanlarını dağıtmayı ve kullanmayı denemeden önce şu anahtar noktalarını denetlemek isteyebilirsiniz:Before you attempt to deploy and use databases, you may want to check these key points:

  • Uzak TCP/IP bağlantılarını kabul etmek için SQL Server yapılandırdınız mı?Have you configured SQL Server to accept remote TCP/IP connections?
  • SQL Server trafiğe izin vermek için herhangi bir güvenlik duvarı yapılandırdınız mı?Have you configured any firewalls to permit SQL Server traffic?
  • SQL Server erişecek her Web sunucusu için bir makine hesabı oturum açma oluşturmuş musunuz?Have you created a machine account login for every web server that will access SQL Server?
  • Veritabanı dağıtımınız, Kullanıcı rolü eşlemeleri oluşturmak için bir komut dosyası içerir veya veritabanını ilk kez dağıttıktan sonra bunları el ile oluşturmanız gerekir mi?Does your database deployment include a script to create user role mappings, or do you need to create these manually after you deploy the database for the first time?
  • Dağıtım hesabı için bir oturum açma oluşturdunuz ve dbcreator sunucu rolüne eklediniz mi?Have you created a login for the deployment account and added it to the dbcreator server role?

Daha Fazla BilgiFurther Reading

Veritabanı projelerini dağıtma hakkında yönergeler için bkz. veritabanı projelerini dağıtma.For guidance on deploying database projects, see Deploying Database Projects. Dağıtım sonrası betiği çalıştırarak veritabanı rolü üyelikleri oluşturma konusunda rehberlik için bkz. test ortamlarına veritabanı rolü üyelikleri dağıtma.For guidance on creating database role memberships by running a post-deployment script, see Deploying Database Role Memberships to Test Environments. Veritabanlarının üyesi olduğu benzersiz dağıtım zorluklarının nasıl ele alınacağını gösteren yönergeler için bkz. Üyelik veritabanlarını kurumsal ortamlara dağıtma.For guidance on how to meet the unique deployment challenges that membership databases pose, see Deploying Membership Databases to Enterprise Environments.