Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Узнать текущий принципал  [new]
Grayscale
Member

Откуда: Спб
Сообщений: 1642
Добрый день... Есть скульСерверЛогин домен\ДоменАдминс; Есть юзер юзер1 мембер домен\ДоменАдминс; есть 4 вызова:
SELECT SYSTEM_USER
SELECT CURRENT_USER
SELECT SESSION_USER
SELECT USER_NAME()

Первый возвращает Юзер1 остальные ДБО, а как мне получить домен\ДоменАдминс?
23 июл 12, 19:30    [12904960]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
denisofff
Member

Откуда: Владивосток
Сообщений: 62
Grayscale,

SELECT ORIGINAL_LOGIN()


Оно?
24 июл 12, 01:55    [12905952]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
Grayscale
Member

Откуда: Спб
Сообщений: 1642
Неа :( Тоже юзер1
24 июл 12, 12:27    [12907668]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
Grayscale
Member

Откуда: Спб
Сообщений: 1642
Grayscale,

Квери резулт
SELECT SYSTEM_USER юзер1
SELECT CURRENT_USERдбо
SELECT SESSION_USERдбо
SELECT USER_NAME()дбо
SELECT USER дбо
SELECT ORIGINAL_LOGIN() юзер1
SELECT SUSER_SNAME() юзер1
24 июл 12, 12:36    [12907735]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
Grayscale
Member

Откуда: Спб
Сообщений: 1642
Как же получить этот долбаный логин?
24 июл 12, 12:36    [12907738]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
step_ks
Member

Откуда:
Сообщений: 936
а задача какая?
24 июл 12, 12:42    [12907766]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
Grayscale
Member

Откуда: Спб
Сообщений: 1642
Есть скуль сервер логин dom\Domain Admins, есть User1 мембер dom\Domain Admins.
Под User1 коннектимся к серверу и нужно узнать что он авторизован как dom\Domain Admins - как это сделать?
24 июл 12, 12:44    [12907787]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Grayscale,

Вы когда к сиквелу подключаетесь, какой тип аутентификации используете? SQL или Windows? Если Windows, то при этом на машине, с которой вы подключаетесь, выполнен ли вход под доменным пользователем или под локальным на этой машине?
24 июл 12, 12:46    [12907804]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Grayscale
Есть скуль сервер логин dom\Domain Admins, есть User1 мембер dom\Domain Admins.
Под User1 коннектимся к серверу и нужно узнать что он авторизован как dom\Domain Admins - как это сделать?

Может быть это?
IS_MEMBER (Transact-SQL)
Indicates whether the current user is a member of the specified Microsoft Windows group or SQL Server database role.
24 июл 12, 12:48    [12907814]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
Grayscale
Member

Откуда: Спб
Сообщений: 1642
SomewhereSomehow
Grayscale,

Вы когда к сиквелу подключаетесь, какой тип аутентификации используете? SQL или Windows? Если Windows, то при этом на машине, с которой вы подключаетесь, выполнен ли вход под доменным пользователем или под локальным на этой машине?


Блин ну полная фигня. Локальный юзер не может быть мембером Dom\Domain Admins, если юзается Dom\Domain Admins 100% windows authentification.
24 июл 12, 12:48    [12907818]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
Grayscale
Member

Откуда: Спб
Сообщений: 1642
SomewhereSomehow
Grayscale
Есть скуль сервер логин dom\Domain Admins, есть User1 мембер dom\Domain Admins.
Под User1 коннектимся к серверу и нужно узнать что он авторизован как dom\Domain Admins - как это сделать?

Может быть это?
IS_MEMBER (Transact-SQL)
Indicates whether the current user is a member of the specified Microsoft Windows group or SQL Server database role.


нет
24 июл 12, 12:49    [12907820]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Grayscale
Блин ну полная фигня. Локальный юзер не может быть мембером Dom\Domain Admins, если юзается Dom\Domain Admins 100% windows authentification.
Я к тому, что может у вас локальный и доменный пользователи одинаково называются или еще какая-нибудь не сиквельная заморочка. Дело в том, что функции SYSTEM_USER и ORIGINAL_LOGIN() возвращают полное доменное имя пользователя Domain\User, а функция IS_MEMBER ('Domain\Group') - действительно прекрасно определяет принадлежность пользователя к какой-либо доменной группе. Так что да, фигня полная у вас там где-то, функции не при чем.
24 июл 12, 13:03    [12907904]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
Grayscale
Member

Откуда: Спб
Сообщений: 1642
SomewhereSomehow,

Чувак, ты даже вопроса не понял, нафиг флудишь? Прекращай.
24 июл 12, 13:16    [12907978]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
declare @t table
(
 [account name] sysname,
 [type] char(8),
 privilege char(9),
 [mapped login name] sysname,
 [permission path] sysname null
);

declare @l sysname = original_login();

insert into @t
 exec xp_logininfo @l, 'all';
 
select
 sp.name
from
 @t t join
 sys.server_principals sp on sp.name = t.[permission path]
where
 sp.type_desc = 'WINDOWS_GROUP';
24 июл 12, 13:20    [12908003]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
Grayscale
Member

Откуда: Спб
Сообщений: 1642
invm,

От это скил! Спасибо!
24 июл 12, 13:21    [12908009]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Grayscale
SomewhereSomehow,

Чувак, ты даже вопроса не понял, нафиг флудишь? Прекращай.

Ну не посетуйте, как уж объяснили. Хорошо, хоть кто-то понял.
24 июл 12, 13:32    [12908078]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
Grayscale
Member

Откуда: Спб
Сообщений: 1642
 DECLARE @name AS NVARCHAR(MAX)
 SELECT @name = name FROM sys.server_principals
 WHERE name = original_login()
 IF @name IS NULL
 BEGIN
	DECLARE @t TABLE
	(
		[account name] SYSNAME,
		[type] CHAR(8),
		privilege CHAR(9),
		[mapped login name] SYSNAME,
		[permission path] SYSNAME null
	);

	DECLARE @l SYSNAME = original_login();

	INSERT INTO @t
	EXEC xp_logininfo @l, 'all';

	SELECT sp.name
	FROM @t t 
	JOIN sys.server_principals sp ON sp.name = t.[permission path]
	WHERE sp.type_desc = 'WINDOWS_GROUP';
END
ELSE SELECT @name


Во такая штука по оконцовке... еще раз сеньк
24 июл 12, 13:36    [12908103]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
Glory
Member

Откуда:
Сообщений: 104760
Grayscale
Во такая штука по оконцовке... еще раз сеньк

И чем это лучше IS_MEMBER (Transact-SQL) ?
24 июл 12, 13:37    [12908118]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
Grayscale
Member

Откуда: Спб
Сообщений: 1642
Glory,

Ну вот когда он надо его нет... А че Is_memberom по всем группам бежать?
24 июл 12, 13:38    [12908128]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
Glory
Member

Откуда:
Сообщений: 104760
Grayscale
А че Is_memberom по всем группам бежать?

Зачем по всем ? По тем, которые в sys.server_principals
24 июл 12, 13:39    [12908137]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
Grayscale
Member

Откуда: Спб
Сообщений: 1642
Glory,

Интресный вариант а если групп 2... щя проверю че будет..
24 июл 12, 13:40    [12908151]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
Glory
Member

Откуда:
Сообщений: 104760
Grayscale
Интресный вариант а если групп 2...

Если групп больше одной то права будут кумулятивные.
24 июл 12, 13:42    [12908161]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
Grayscale
Member

Откуда: Спб
Сообщений: 1642
Glory
Grayscale
Интресный вариант а если групп 2...

Если групп больше одной то права будут кумулятивные.


Да... фигня получается...


Glory
И чем это лучше IS_MEMBER (Transact-SQL)


Видимо ничем... но тогда речь о переборе еще не стояла...
24 июл 12, 13:45    [12908185]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
Grayscale
Member

Откуда: Спб
Сообщений: 1642
* не шла
24 июл 12, 13:46    [12908186]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текущий принципал  [new]
step_ks
Member

Откуда:
Сообщений: 936
Grayscale
Glory
пропущено...

Если групп больше одной то права будут кумулятивные.


Да... фигня получается...

с xp_logininfo тоже больше одной получите
24 июл 12, 13:49    [12908207]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить