Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SqlStringConnect / 3 сообщений из 3, страница 1 из 1
20.12.2006, 19:31
    #34214449
shanton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SqlStringConnect
Пытаюсь програмно создать соединение с MS SQL через драйвер ODBC:

Driver={SQL Server};Server=myServerAddress;Database=myDataBase;Trusted_Connection=Yes;

вроде получается. Но коннект создаётся независимо от того есть ли у пользователя права на доступ к БД, непускает только в том случае если пользователь совсем не зарегистрирован на сервере. Знаю, что можно конкретно задавать имя пользователя и пароль:

Driver={SQL Server};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

Но тут проблема, как узнать имя пользователя в домене и его пароль, поскольку програмой будут пользоватся разные пользователи домена.
Как быть? Подскажите пожалуйста
...
Рейтинг: 0 / 0
20.12.2006, 20:35
    #34214548
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SqlStringConnect
Конкретно имя пользователя и его пароль можно указывать только если сервер допускает такую авторизацию. При этом логины и пароли прописываются на самом сервере.
...
Рейтинг: 0 / 0
21.12.2006, 08:52
    #34215005
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SqlStringConnect
shantonПытаюсь програмно создать соединение с MS SQL через драйвер ODBC:

Driver={SQL Server};Server=myServerAddress;Database=myDataBase;Trusted_Connection=Yes;

вроде получается. Но коннект создаётся независимо от того есть ли у пользователя права на доступ к БД, непускает только в том случае если пользователь совсем не зарегистрирован на сервере.

В данном случае используется Windows Authentication (Trusted Connection - MS SQL Server её поддерживает всегда).
Пользователь (или Windows группа, куда он входит) должен иметь Login на SQL сервере.
Наличие Login - это необходимое, но не достаточное условие для работы с конкретной базой данных на сервере. В общем случае в этой базе данных должен быть пользователь (User), связанный с Login на сервере (или пользователь guest). Этому пользователю затем дают разрешения (permission) на объекты базы данных. Также, еще есть права за счет членства в ролях (группах) сервера или базы данных, права за счет владения объекта. В общем, советую почитать HELP по MS SQL (Book On Line или BOL).
shanton
Знаю, что можно конкретно задавать имя пользователя и пароль:
Driver={SQL Server};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
Но тут проблема, как узнать имя пользователя в домене и его пароль, поскольку програмой будут пользоватся разные пользователи домена.
Как быть? Подскажите пожалуйста
При таком подключении используется SQL Authentication. MS SQL Server должен работать в режиме Mixed Mode (Windows Authentication and SQL Server Authentication). При этом на сервере должен быть создан SQL Login (в вашем случае myUsername) с указанным паролем (myPassword).
А далее.. смотри все, что я сказал про пользователей базы данных выше.
Если вы с сервером уже соединились, то имя пользователя и домен можно узнать через системную функцию сервера: SUSER_SNAME()
С уважением, Алексей.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SqlStringConnect / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]