![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пользаватели в SQL Server 2000 [D7, MSSQL]
Black © (2004-12-19 10:06:00)Мне нужно организовать доступ к базе SQL SERVER'а для разных пользователей. Т.е. кождый пользователь должен иметь доступ только к своей таблице в базе. Пользователей много, так же нужно будет создавать новых пользователей. Посоветуйте как лучше это всё сделать. Через пользователей SQL Server'а или создать дополнительную базу с пользователями, или что нибудь ещё?
KSergey (2004-12-20 13:27:00) [1]У ADOStoredProc см. Parameters
SeZuka (2004-12-20 12:19:00) [2]2 Black © (20.12.04 11:47) [27]
Это уже смешно!!!
F1 Help!!!
В Parameters пишешь заполняешь необходимые параметры, если собираешься заполнять их динамически, то прежде сделай Refresh, затем если нужно получить данные делаешь Open или ExecProc без получения данных.
Но лучше юзай ADOCommand и ADODataSet
Black (2004-12-20 11:47:00) [3]Black © (20.12.04 10:20) [18]
А как выполнить процедуру с параметрами?
Если кто знает, то напишите пожалуйста. Использую:
ADOConnection для подключения к MSSQL
ADOStoredProc для выполнения процедур.
SeZuka (2004-12-20 11:35:00) [4]Тебе еще раз написать?
USER - имя текущего пользователя
USER_ID() - ID текущего пользователя
SUSER_SNAME() - текущий логин
SUSER_SID() - текущий идентификатор безопасности SID
Еще раз спросишь ...
KSergey (2004-12-20 11:34:00) [5]> [15] Nikolay M. © (20.12.04 09:59)
> > на сколько знаю, как такового ID у пользователя нет ни в
> > каких системных таблицах
>
> SELECT
> suser_sid('sa')
Ключевые слова были "на сколько" ;)
KSergey (2004-12-20 11:31:00) [6]> [22] Black © (20.12.04 11:18)
> Как узнать логин пользователя, вызвавшего процедуру, зная
> имя пользователя?
Вы справку читать начнете, наконец??? Хотя бы по упомянутым тут ф-циям?
Nikolay M. (2004-12-20 11:30:00) [7]
> Black © (20.12.04 11:18) [22]
А что в твоем понимании есть "логин" и "имя пользователя"?
Black (2004-12-20 11:18:00) [8]Как узнать логин пользователя, вызвавшего процедуру, зная имя пользователя?
Nikolay M. (2004-12-20 11:12:00) [9]
> SeZuka © (20.12.04 11:08) [20]
Хотя бы. Но ведь это же не "не подходит абсолютно"?
SeZuka (2004-12-20 11:08:00) [10]2 Nikolay M. © (20.12.04 10:27) [19]
А как???
Создать в таблице столбец типа Binary(85), а затем производить выборку по нему? И зачам столько лишней информации в каждой записи?
Nikolay M. (2004-12-20 10:27:00) [11]
> SeZuka © (20.12.04 10:17) [17]
> > SELECT
> > suser_sid('sa')
> > ???
>
> У этой функции возвращаемое значение типа Binary, и для
> данных целей никак не годится
Это почему?
Black (2004-12-20 10:20:00) [12]А как выполнить процедуру с параметрами?
SeZuka (2004-12-20 10:17:00) [13]2 Nikolay M. © (20.12.04 09:59) [15]
> SELECT
> suser_sid('sa')
> ???
У этой функции возвращаемое значение типа Binary, и для данных целей никак не годится
SeZuka (2004-12-20 10:08:00) [14]Я же дал пример, USER_ID(USER)
функция USER_ID(['Name']) возвращает ID пользователя или роли базы данных по имени, либо ID текущего пользователя,
а функция USER возвращает имя текущего пользователя базы данных
Nikolay M. (2004-12-20 09:59:00) [15]
> на сколько знаю, как такового ID у пользователя нет ни в
> каких системных таблицах
SELECT
suser_sid('sa')
???
KSergey (2004-12-20 09:41:00) [16]> [12] Black © (20.12.04 09:12)
> select suser_name()
> Здесь в скобках что нибудь указывается?
Читать справку - не в моде?
Ega23 (2004-12-20 09:33:00) [17]разумеется через встроенную систему аутентификации и авторизации mssql
Я бы не стал так категорично утверждать. Способ хранения всевозможных клиентских "операций" в базе и раздачу доступа именно на эти "операции" считаю гораздо более гибкой.
Black (2004-12-20 09:12:00) [18]Пользуюсь ADOConnection для доступа к MSSQL
> и мне не известно как узнать ID пользователя который запустил эту процедуру.
select suser_name()
Здесь в скобках что нибудь указывается?
KSergey (2004-12-20 09:06:00) [19]> [10] Black © (20.12.04 08:56)
> мне не знаком способ
> вызывания хранимых процедур с помощью Delphi
и мне не известно как узнать
> ID пользователя который запустил эту процедуру.
Какие компоненты доступа?
> и мне не известно как узнать ID пользователя который запустил эту процедуру.
select suser_name()
Только это login, а не ID
ID надо сопоставлять по своей таблице пользователей (на сколько знаю, как такового ID у пользователя нет ни в каких системных таблицах)
Black (2004-12-20 08:56:00) [20]Книжки читал и слова мне эти знакомы, мне не знаком способ вызывания хранимых процедур с помощью Delphi (т.к. с SQL Server'ом я знаком всего дня 3); и мне не известно как узнать ID пользователя который запустил эту процедуру.