Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Пользаватели в SQL Server 2000 [D7, MSSQL]


Страницы:   1 2

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 пользователя который запустил эту процедуру.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо