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

Откуда:
Сообщений: 70
Добрый день

Есть логин/пользователь созданные как-то так:

use master
go
CREATE LOGIN [CompanyGROUP\S.Stallone] FROM WINDOWS WITH DEFAULT_DATABASE=[TheDatabase], DEFAULT_LANGUAGE=[us_english]
GO

use TheDatabase
GO

CREATE USER [CompanyGROUP\S.Stallone] FOR LOGIN [CompanyGROUP\S.Stallone] WITH DEFAULT_SCHEMA=[test]
GO


Итого:
Логин:CompanyGROUP\S.Stallone
База: TheDatabase
Юзер: CompanyGROUP\S.Stallone
Схема:test

При коннекте с локальной (серверной) машины (под логином CompanyGROUP\S.Stallone), запрос
use TheDatabase
go
select user, schema_name(), system_user, db_name()
go

возвращает "ожидаемые" значения.

Но при коннекте с любой другой (доменной) машины user и schema_name() возвращают dbo.

Ммм.. почему так? Как победить?

Спасибо.
25 авг 16, 10:56    [19588082]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
o-o
Guest
значит, при коннекте с одной машины юзер ни разу не db_owner,
а при коннектах с других стал овнером?
не иначе как логон-триггер оценивает хост коннектящегося, а затем
в случае локальной машины выкидывает юзера из овнеров,
а случае любой другой снова зачисляет
---
добавьте в ваш скрипт IS_MEMBER('db_owner')
и убедитесь, что он то овнер, то нет
25 авг 16, 11:19    [19588207]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
o-o
Guest
о, кстати.
еще вариант, не знаю только, как его организовать в виндовом смысле.
овнером он внезапно может становиться потому, что входит в другую виндовую группу,
которая является db_owner-ом.
вопрос только в том, как сделать, чтобы с одного компа юзер в нее входил,
а с другого не входил.
чтобы это предположение проверить,
надо вывести виндовые группы-логины, куда он входит.
т.е. при каждом коннекте смотрите
select *
from sys.login_token
where principal_id > 0
25 авг 16, 11:25    [19588237]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
o-o
Guest
ооо, еще круче, чтобы user возвратил dbo доменной учетке,
мало быть просто db_owner-ом.
надо быть сисадмином.
значит, или логон-триггер возводит учетку в сисадмины,
или та винда не знаю каким еще логон-скриптом добавляет учетку в группу,
являющуюся сисадмином на сервере,
или вы к разным серверам коннектитесь
25 авг 16, 11:45    [19588385]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
Givv
Member

Откуда:
Сообщений: 70
o-o
не иначе как логон-триггер оценивает хост коннектящегося...


Logon триггера точно нет, это 2005.

Microsoft SQL Server 2005 - 9.00.5000.00 (X64) Dec 10 2010 10:38:40 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1)

o-o
добавьте в ваш скрипт IS_MEMBER('db_owner')
и убедитесь, что он то овнер, то нет

Ну да, так и есть.
25 авг 16, 11:46    [19588400]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
o-o
Guest
группы проверили?
не входит ли во что-то еще, когда неожиданно овнером стал?
имя сервера выводите тоже, @@servername.
и что у нас с IS_SRVROLEMEMBER('sysadmin')?
25 авг 16, 11:58    [19588498]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
Givv
Member

Откуда:
Сообщений: 70
o-o
надо быть сисадмином.

Ага сисадмин. Проверю "обычного" юзера

Но блин, как сисадмину сделать нужную дефолтную схему при коннекте?
25 авг 16, 11:59    [19588502]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
Givv
Member

Откуда:
Сообщений: 70
o-o
группы проверили?
не входит ли во что-то еще, когда неожиданно овнером стал?
имя сервера выводите тоже, @@servername.
и что у нас с IS_SRVROLEMEMBER('sysadmin')?


sys.login_token идентичный, а IS_SRVROLEMEMBER('sysadmin') - разный. Локально = 0, с другой машины = 1.

Сервер тот же, спасибо.
25 авг 16, 12:03    [19588548]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
o-o
Guest
Givv
Но блин, как сисадмину сделать нужную дефолтную схему при коннекте?

какие-то интересные у вас проблемы.
надо его скорее выкинуть из админов,
жизнь сразу упростится.
если это некто неспособное само себе схему поменять при коннекте,
ему точно не место в сисадминах.
если это программа, к-ая должна быть админом, то ей тоже не место в сисадминах.
но если хотите ей дать маскимум прав, из роли надо выкинуть, выдать control server
25 авг 16, 12:05    [19588560]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
komrad
Member

Откуда:
Сообщений: 5252
o-o
чтобы это предположение проверить,
надо вывести виндовые группы-логины, куда он входит.


exec xp_logininfo 'CompanyGROUP\S.Stallone', 'all'
25 авг 16, 12:08    [19588582]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
Givv
Member

Откуда:
Сообщений: 70
Givv
sys.login_token идентичный


Вру

CompanyGROUP\S.Stallone WINDOWS LOGIN GRANT OR DENY
public SERVER ROLE GRANT OR DENY
sysadmin SERVER ROLE DENY ONLY vs GRANT OR DENY
BUILTIN\Administrators WINDOWS GROUP DENY ONLY vs GRANT OR DENY
BUILTIN\Administrators WINDOWS GROUP DENY ONLY vs GRANT OR DENY
На удаленной машине GRANT OR DENY вместо DENY ONLY локально.
25 авг 16, 12:11    [19588593]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
o-o
Guest
в обоих случаях выполните xp_logininfo,
покажите строчки, где privilege = admin,
имена групп можете поменять, но покажите оба случая,
это должно пролить свет
25 авг 16, 12:13    [19588606]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
o-o
Guest
вы, простите, как коннектитесь,
процедуру какую-то при этом выполняете, а?
в которой сертификатом выдаются права админа, ага?
25 авг 16, 12:16    [19588626]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
Givv
Member

Откуда:
Сообщений: 70
o-o
неспособное само себе схему поменять при коннекте,


Ну так как поменять? :)

Про sysadmin и dbo вы правы
DEFAULT_SCHEMA ignored если sysadmin

И поменять это нельзя...
25 авг 16, 12:23    [19588680]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
o-o
Guest
Givv
o-o
неспособное само себе схему поменять при коннекте,

Ну так как поменять? :)

дефолтно не сделать, а законнектившись запросто.
сделать имперсонэйт кого угодно с той самой дефолтной схемой,
и будет до реверта та схема дефолтной.
25 авг 16, 12:28    [19588708]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
Givv
Member

Откуда:
Сообщений: 70
o-o
дефолтно не сделать, а законнектившись запросто.


ок.. ясно спасибо.
25 авг 16, 12:41    [19588803]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
o-o
Guest
вы лучше расскажите, как сумели получить
sysadmin SERVER ROLE DENY ONLY
25 авг 16, 12:44    [19588822]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
Givv
Member

Откуда:
Сообщений: 70
o-o
вы лучше расскажите, как сумели получить
sysadmin SERVER ROLE DENY ONLY


select *
from sys.login_token
where principal_id > 0


Выполнен локально, на сервере. Это плохо? Мне интересно )
25 авг 16, 13:00    [19588962]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
o-o
Guest
эээ...
как бы сказать, чтобы такую ситуацию получить,
надо как-то постараться.
выгрести такой ответ это уже следствие,
и вот мне интересно, как вы умудрились что-то сделать,
что вот такое возвращает
25 авг 16, 13:04    [19588988]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
o-o
Guest
а тот, который локально и не админ,
у него какие права дает select * from sys.fn_my_permissions(null, 'server')
2 строчки всего?
и IS_SRVROLEMEMBER('sysadmin') возвращает 0?
а в токенах sysadmin есть, да?
зашибительный случай
25 авг 16, 13:09    [19589012]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
Givv
Member

Откуда:
Сообщений: 70
o-o
и вот мне интересно, как вы умудрились что-то сделать,
что вот такое возвращает

Ну это невевроятно древний сервер... кто и что тут делал один бог ведает..
25 авг 16, 13:22    [19589098]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
Givv
Member

Откуда:
Сообщений: 70
o-o
а тот, который локально и не админ,
у него какие права дает select * from sys.fn_my_permissions(null, 'server')
2 строчки всего?
и IS_SRVROLEMEMBER('sysadmin') возвращает 0?
а в токенах sysadmin есть, да?
зашибительный случай


Что-то я уже сам запутался что и где. Но мне интересно.

Вот свежие данные ). Локально и лично полученные.

1.
select * from sys.fn_my_permissions(null, 'server')

server CONNECT SQL
server VIEW ANY DATABASE

2.
IS_SRVROLEMEMBER('sysadmin')

0

3.
select * from sys.login_token where principal_id > 0


строчка со словом "sysadmin" есть, ага. с DENY ONLY

Катастрофа?
25 авг 16, 13:31    [19589143]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
o-o
Guest
я не могу такое воспроизвести
-------------------------------------------------------
этот тип является админом на локальной машине,
т.е. входит в BUILTIN\Administrators,
а BUILTIN\Administrators у вас в роли сисадмин (вот это зря),
поэтому даже когда вы не даете никаких особых прав этому S.Stallone,
просто создаете для него логин на сервере,
у него уже все права есть.
его можно не мапить в базы, он в них всех овнер.
но проблема в том, что это так только с удаленных машин.
а на локальной не пойму, что происходит
25 авг 16, 13:39    [19589211]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
o-o
Guest
сдается мне, это виндовая загадка.
залогинившись под типчиком локально и удаленно,
посмотрите, входит ли он в Administrators.
получается, что удаленно да, а локально НЕТ.
но это как-то на уровне винды организовали, наверное
25 авг 16, 13:55    [19589295]     Ответить | Цитировать Сообщить модератору
 Re: Неверно выбирается Uset для доменного Login'а.  [new]
Givv
Member

Откуда:
Сообщений: 70
o-o,

Видимо да, ноги из AD растут..

Спасибо за разъяснения!
25 авг 16, 14:03    [19589350]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить