Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Подключение к БД с использованием логина и пароля  [new]
333Mixim333
Member

Откуда:
Сообщений: 28
Стоит задача: "организовать защиту SQL БД с помощью использования логина и пароля".
Добавил в БД нового пользователя - "Admin"(БД=>Безопасность=>Пользователи), пароль задать не получилось - такого поля при добавлении нового пользователя просто нет в SQL Server 2008. Вроди бы вход с применением имени добавленного пользователя проходит(использую OleDbConnection), но для защиты нужен еще пароль. Начал смотреть в интернете, каким образом можно добавить пользователя с паролем: БД=>Безопасность=>Роли=>Роли приложений=>Создать роль приложений(хотя, по-моему, это не совсем то, что нужно). Добавил Роль приложения("Admin") и пароль для неё("myPassword"), теперь возникает необходимость удалить ранее добавленного пользователя Admin из БД=>с горем пополам удалил(сто раз SQL Server выдавал что-то вроде:"Пользователь владеет схемой БД...Удаление невозможно").
Ради спортивного интереса проверяю, как работает и работает ли вообще ограничение на подключение к БД по логину и паролю. Пишу в C#:
OleDbConnection myOleDbConnection=new OleDbConnection("Provider = SQLOLEDB; Data Source = MyPC; Integrated Security = SSPI; Initial Catalog = MyDB; Username = Admin; Password = 111");[b]//пароль явно не тот, который должен быть[/b]
myOleDbConnection.Open();
Данный код с успехом подключается к БД, данные из неё отображаются, хотя пароль задан неверно(вместо "myPassword" написано "111")!
Почему так происходит и как исправить данную проблему? Как добавить пользователя, защищенного паролем?
4 окт 11, 10:31    [11379107]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к БД с использованием логина и пароля  [new]
Glory
Member

Откуда:
Сообщений: 104751
333Mixim333
Добавил в БД нового пользователя - "Admin"(БД=>Безопасность=>Пользователи), пароль задать не получилось - такого поля при добавлении нового пользователя просто нет в SQL Server 2008.

Потому что пароль есть у Логина, а не у Пользователя базы
А вы всего лишь дали какому-то Логину права доступа к своей базе под пользователем Admin
4 окт 11, 10:34    [11379117]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к БД с использованием логина и пароля  [new]
Glory
Member

Откуда:
Сообщений: 104751
333Mixim333
Данный код с успехом подключается к БД, данные из неё отображаются, хотя пароль задан неверно(вместо "myPassword" написано "111")!

А Integrated Security = SSPI для чего указали ?
4 окт 11, 10:35    [11379122]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к БД с использованием логина и пароля  [new]
Glory
Member

Откуда:
Сообщений: 104751
333Mixim333
теперь возникает необходимость удалить ранее добавленного пользователя Admin из БД=>с горем пополам удалил(сто раз SQL Server выдавал что-то вроде:"Пользователь владеет схемой БД...Удаление невозможно").

Надо дочитывать сообщения до конца. Потому что в нем говорится, что сначала нужно что с этой схемой сделать - удалить, перензначить владельца и тп
4 окт 11, 10:38    [11379138]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к БД с использованием логина и пароля  [new]
333Mixim333
Member

Откуда:
Сообщений: 28
Glory
Потому что пароль есть у Логина, а не у Пользователя базы
А вы всего лишь дали какому-то Логину права доступа к своей базе под пользователем Admin

А как тогда быть - использование Роли приложений является правильным решением проблемы?
Glory
А Integrated Security = SSPI для чего указали ?

Если верно понимаю, то значение SSPI аргумента Integrated Security показывает, что подключаться к БД нужно под именем текущего пользователя. Из этого следует, что вместо SSPI значение Integrated Security должно задаваться следующим образом: "Integrated Security=false;uid=Admin;pwd=myPassword?
4 окт 11, 10:54    [11379255]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к БД с использованием логина и пароля  [new]
Glory
Member

Откуда:
Сообщений: 104751
333Mixim333
Glory
Потому что пароль есть у Логина, а не у Пользователя базы
А вы всего лишь дали какому-то Логину права доступа к своей базе под пользователем Admin

А как тогда быть - использование Роли приложений является правильным решением проблемы?

Вы понимате что Логин и Пользователь - это разные вещи ?

333Mixim333
Glory
А Integrated Security = SSPI для чего указали ?

Если верно понимаю, то значение SSPI аргумента Integrated Security показывает, что подключаться к БД нужно под именем текущего пользователя. Из этого следует, что вместо SSPI значение Integrated Security должно задаваться следующим образом: "Integrated Security=false;uid=Admin;pwd=myPassword?

К серверу подключается всегда Логин
4 окт 11, 10:56    [11379263]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к БД с использованием логина и пароля  [new]
333Mixim333
Member

Откуда:
Сообщений: 28
Glory
Вы понимате что Логин и Пользователь - это разные вещи ?
К серверу подключается всегда Логин

Есть небольшие проблемы с пониманием этого, всегда думал, что Логин - это имя Пользователя. В SQL, видимо, это не совсем так?
Попытался создать элемент класса OleDbConnection следующим образом:
OleDbConnection myOleDbConnection=new OleDbConnection("Provider = SQLOLEDB; Data Source = MyPC; Integrated Security = false; "Integrated Security=false;uid=Admin;pwd=myPassword; Initial Catalog = MyDB");
myOleDbConnection.Open();
Но при открытии соединения возникает ошибка: DB_E_ERRORSOCCURRED(0x80040E21). Ни могли бы Вы разъяснить разницу между Логином и Пользователем в SQL, а также объяснить почему возникает вышеописанная ошибка?
4 окт 11, 11:10    [11379382]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к БД с использованием логина и пароля  [new]
333Mixim333
Member

Откуда:
Сообщений: 28
Опечатка: вместо "Provider = SQLOLEDB; Data Source = MyPC; Integrated Security = false; "Integrated Security=false;uid=Admin;pwd=myPassword; Initial Catalog = MyDB" пишу:
"Provider = SQLOLEDB; Data Source = MyPC; Integrated Security = false; uid=Admin;pwd=myPassword; Initial Catalog = MyDB"
4 окт 11, 11:12    [11379399]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к БД с использованием логина и пароля  [new]
Glory
Member

Откуда:
Сообщений: 104751
333Mixim333
Ни могли бы Вы разъяснить разницу между Логином и Пользователем в SQL, а также объяснить почему возникает вышеописанная ошибка?

Откройте хелп MSSQL
Начните с чтения Permissions Hierarchy
Потом Authentication Mode
Потом Logins, Users
4 окт 11, 11:17    [11379436]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить