2015-10-21 7 views
0

Я создал приложение на C#, используя Windows Forms, и он работает нормально. Я подключение к SQL Server с использованием проверки подлинности Windows:Локальный сервер SQL Server

SqlConnection sc = new SqlConnection("Server= localhost; Database= ATWiki; Integrated Security=True;"); 

У меня есть два вопроса:

  1. Если я хочу подключить другой компьютер к тому же серверу (оба компьютера на той же сети), выполните Мне нужно изменить настройку соединения на аутентификацию SQL Server или будет ли она работать с аутентификацией Windows? Какие значения входа должны быть на втором ПК?

  2. если он не работает, как я могу создать логин для аутентификации SQL Server? Я знаю, что имя пользователя по умолчанию - sa, но я забыл, какой пароль был указан при установке. Как я могу создать новый вход на первом ПК и сделать второй компьютер подключенным к нему?

Спасибо

ответ

0

Integrated Security не будет работать. Вы можете создать вторую са-вход для сервера с помощью следующего запроса:

USE master 

IF NOT EXISTS (
    SELECT loginname from master.dbo.syslogins 
    WHERE name = 'YOUR_LOGIN_NAME' 
) 
BEGIN 
    CREATE LOGIN [YOUR_LOGIN_NAME] WITH PASSWORD = 'YOUR_PASSWORD' 
END 

USE master 

ALTER LOGIN [YOUR_LOGIN_NAME] ENABLE 

EXEC sp_addsrvrolemember 'YOUR_LOGIN_NAME', 'sysadmin' 

CHECKPOINT 

Как всегда, быть осторожным, поскольку я уверен, что вы не будете нуждаться в администратора сервера только для доступа к базе данных. Попробуйте создать пользователя для своей базы данных, используя созданную вами логин. Я думаю, что это будет так:

USE ATWiki 
GO 

-- not needed anymore 
-- EXEC sp_addsrvrolemember 'YOUR_LOGIN_NAME', 'sysadmin' 

sp_adduser 'YOUR_LOGIN_NAME', 'YOUR_NEW_USER_NAME', 'db_owner'; 
-- role is db_owner, apply whatever role suits your needs 

Что касается строки подключения. Выясните IP-адрес или имя компьютера, на котором работает сервер sql. то ваша строка соединения будет sth. например:

SqlConnection sc = new SqlConnection("Server=NAME_OF_THE_MASHINE_IN_YOUR_NETWORK;Database=ATWiki;User Id=YOUR_LOGIN_NAME;Password=YOUR_PASSWORD;"); 

Также обратите внимание, что для авторизации логин должен быть включен смешанный аутентификация!

1

Если вы хотите установить соединение с другим сервером, лучше всего использовать, когда вы используете ex. это ConnectionString

Server=myServerAddress;Database=myDataBase;User Id=myUsername; Password=myPassword; 

Здесь подробнее: http://www.connectionstrings.com/sql-server/

2

если вы хотите подключить удаленный сервер, вы должны изменить подключение выглядеть этот site

Вы должны внести некоторые изменения на сервере для удаленного подключения

  • Открытый диспетчер конфигурации SQL Server
  • SQL S erver Конфигурация сети включена VIA, TCP/IP

Если вы хотите подключиться к определенному пользователю, вы должны создать логин на SQL Server и написать свое имя пользователя и пароль.

  • Откройте Microsoft SQL Management Server Вкладка Студия
  • затратить безопасности и создания новых Вход
  • Изменить Логин Тип проверки подлинности Windows или проверка подлинности SQL Server (если вы подключаетесь пользователя сети вы можете choore проверку подлинности Windows)
  • набор пароль (если вы выбрали аутентификацию SQL Server)
  • Установить роль сервера под вкладкой «Роли сервера» (для примера sysAdmin) info
  • вы можете установить пользователь, какая база данных должна подключаться под пользовательским сопоставлением
0

Нет, вам не нужно менять строку соединения. Я думаю, что оба ваших вопроса сводятся к тому, что вы должны взглянуть на безопасность SQL-сервера.

Погода, в которой вы используете интегрированную защиту (аутентификацию Windows) или аутентификации SQL-сервера, вам необходимо убедиться, что эти пользователи имеют доступ к вашей базе данных. Я предполагаю, что вы используете MS SQL Server с Management Studio:

  1. Перейти к SQL Server>Security>Logins для создания пользователей на Microsoft SQL сервера
  2. Перейти к Microsoft SQL Server>Databases>$database>Security на предоставить доступ для вновь созданных пользователей.

Более подробную информацию можно найти here

0

Поскольку вы программируете на C#. Вы можете просто создать новый метод инициализации базы данных. Пример:

public void programName() 
{ 
     InitializeComponent(); 
     InitializeDatabase(); 
}` 

`private void InitializeDatabase() 
    { 
     string dbPath = @"yourdatabaseurlhere"; 
     SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=" +      dbPath + ";Integrated Security=True;User Instance=True"); 
     SqlCommand cmd = new SqlCommand(); 
     cmd.Connection = cn; 
}` 

Я надеюсь, что это работает для вас ...

Смежные вопросы