powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как найти истинного пользователья
16 сообщений из 16, страница 1 из 1
Как найти истинного пользователья
    #32063873
Mukumov Rustam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте Все!
Для поля указал значение по умолчанию user_name()
Для некоторых пользователей она возвращает dbo
С помошью какой функции можно получить истинного пользователя.

Спасибо Всем!
...
Рейтинг: 0 / 0
Как найти истинного пользователья
    #32063878
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А dbo - это ложный пользователь???
...
Рейтинг: 0 / 0
Как найти истинного пользователья
    #32063881
ChaosMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
master.sysprocesses.nt_username
...
Рейтинг: 0 / 0
Как найти истинного пользователья
    #32063882
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
USER_NAME - Returns a user database username
SUSER_SNAME - Returns the login identification name
...
Рейтинг: 0 / 0
Как найти истинного пользователья
    #32063888
evg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
evg
Гость
select system_user

Вернет имя пользователя по windows autentification.
...
Рейтинг: 0 / 0
Как найти истинного пользователья
    #32063897
mishgan2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>>А dbo - это ложный пользователь???
Не всегда он истинный...
...
Рейтинг: 0 / 0
Как найти истинного пользователья
    #32064376
Mukumov Rustam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Glory и Всем остальным.
...
Рейтинг: 0 / 0
Как найти истинного пользователья
    #32064469
mishgan2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А я вот ничего не понял.
Объясните кто-нибудь.
Делаю так:
Код: plaintext
1.
2.
3.
4.
5.
sp_addlogin 'vasya','vasya'
go
sp_grantdbaccess 'vasya','vasya_pupkin'
go
sp_addsrvrolemember 'vasya','sysadmin'
go

Т.е создали логин vasya. Создали в текущей базе пользователя 'vasya_pupkin', который связан с логином vasya. Также для кучи дали ему права sysadmin.
Теперь заходим на сервер под логином vasya и активизируем БД в которой он является пользователем 'vasya_pupkin'.
ВНИМАНИЕ ВОПРОС: КАК ВЫВЕСТИ ИМЯ ПОЛЬЗОВАТЕЛЯ?
Эти команды:
Код: plaintext
1.
select USER_NAME()
select USER

выдают DBO.
Эти команды:
Код: plaintext
1.
select SUSER_SNAME()
select system_user

выдают vasya.
А мне надо, чтобы выдалось ПРАВИЛЬНОЕ имя пользователя, т.е. vasya_pupkin
...
Рейтинг: 0 / 0
Как найти истинного пользователья
    #32064613
schatz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Run exec sp_who (system prozedur)
...
Рейтинг: 0 / 0
Как найти истинного пользователья
    #32064625
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select loginname from master..syslogins where sid = suser_sid()
...
Рейтинг: 0 / 0
Как найти истинного пользователья
    #32064652
Фотография Белов Владимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нормальный пользователь это, по твоему имя пользователя в твоей БД
Ну тогда
select name from <you_db>.dbo.sysusers where sid = SUSER_SID()
...
Рейтинг: 0 / 0
Как найти истинного пользователья
    #32064809
mishgan2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 (schatz)
>>Run exec sp_who (system prozedur)
SP_WHO выведет список активных процессов. Имя пользователя из этого списка узнать нельзя.
2 (Glory)
>>select loginname from master..syslogins where sid = suser_sid()
Этот запрос поможет мне узнать логин, под которым я вошел на сервер (т.е. в моем случае это мне выдаст 'vasya'). А мне нужно получить имя пользователя в текущей БД (т.е. 'vasya_pupkin')
2 ()
>>select name from <you_db>.dbo.sysusers where sid = SUSER_SID()
Этот запрос не возвращает ни одной строки..
К тому же вообще в таблице sysusers вообще не хранится "настоящее" имя пользователя (т.е. 'vasya_pupkin'). Там есть только dbo.
И это все из-за того, что я включил этот логин в серверную роль sysadmin.
...
Рейтинг: 0 / 0
Как найти истинного пользователья
    #32064825
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Логину, входящему в серверную роль sysadmin вовсе не обязательно быть отмапленным в базе в какого-либо пользователя.
Если он все-таки отмаплен в пользователя то запрос
select name from <you_db>.dbo.sysusers where sid = SUSER_SID()
вернет его имя пользователя в базе,

Если не отмаплен, то можно получить только его логин
select loginname from master..syslogins where sid = suser_sid()

ЗЫ
SP_WHO выведет список активных процессов. Имя пользователя из этого списка узнать нельзя.
Из SP_WHO нельзя а из системных таблиц, на основе которых работает SP_WHO - можно. Если опять логин отмаплен в пользователя базы

select a.loginame, b.name from master.dbo.sysprocesses a
inner join sysusers b on b.sid = a.sid
where a.sid = suser_sid()
...
Рейтинг: 0 / 0
Как найти истинного пользователья
    #32064865
mishgan2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Glory, в том то и дело, что в моем примере пользователь отмаплен (я для него делал sp_grantdbaccess), но этот запрос:
select name from <you_db>.dbo.sysusers where sid = SUSER_SID()
ничего не возвращает.
...
Рейтинг: 0 / 0
Как найти истинного пользователья
    #32064959
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2mishgan2000
А у меня возвращает. Запросы
select USER_NAME()
select name from sysusers where sid = SUSER_SID()
взвращают dbo и отмапленного пользователя
...
Рейтинг: 0 / 0
Как найти истинного пользователья
    #32065123
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня работает так как я рассказал.
Microsoft SQL Server 2000 - 8.00.679 (Intel X86) Aug 26 2002 15:09:48 Copyright (c) 1988-2000 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 3)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как найти истинного пользователья
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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