Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 sysadmin не имеет доступа  [new]
Очень лысый
Member

Откуда: БОМЖ
Сообщений: 590
Здравствуйте, товарищи!

Столкнулся со странной хренью. Есть инстанс у некоего клиента, на котором нужно проделать некоторую работу. Внутренняя security кухня это внутренне дело клиента. Мне создали доменный логин, имеющий права локального админа, и добавили его в роль sysadmin на инстансе. При этом, когда я подключаюсь к инстансу, я вижу, что мои права сильно ограничены. Не вижу логины, включая свой, sql server agent, нет доступа к ряду баз. ИТшники клиента включают дурака: типа ты локальный админ и вообще, не знаем, как так может быть. Я, в силу ограниченности доступа, ничего толком не могу видеть и предпринять. Тем более это прод, и что-то там хакать я не собираюсь.

use master
SELECT CURRENT_USER
возвращает guest

SELECT SUSER_SNAME()
возвращает мою доменную учётку, тогда как в списке логинов я её не вижу.

Вопрос в следующем: что эти упыри могли нахимичить и как можно эту ситуацию исправить (подсказать упырям), дабы я мог таки воспользоваться своими админскими привилегиями?

Модератор: Ссылка на сайт БОМЖа была удалена


Сообщение было отредактировано: 23 ноя 19, 00:58
22 ноя 19, 23:07    [22023351]     Ответить | Цитировать Сообщить модератору
 Re: sysadmin не имеет доступа  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36979
IS_SRVROLEMEMBER
23 ноя 19, 01:00    [22023395]     Ответить | Цитировать Сообщить модератору
 Re: sysadmin не имеет доступа  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1369
Очень лысый,

если вы видете current_user как guest, то не очень то вы в роли sysadmin.
просите что бы вашу учетку нормально включили в роль если их политика безопасности это позволяет.

+

вообще на месте dba я бы тоже не стал давать права sysadmin налево и направо.
все зависит от специфики необходимой работы. есть вполне конкретные ситуации когда можно ограничиться выдачей только определенных прав доступа



Сообщение было отредактировано: 23 ноя 19, 02:49
23 ноя 19, 02:48    [22023401]     Ответить | Цитировать Сообщить модератору
 Re: sysadmin не имеет доступа  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31357
Очень лысый
возвращает мою доменную учётку, тогда как в списке логинов я её не вижу.
Просто случайно добавили другой доменный акаунт на сиквел, и дали ему сисадмина. Ошиблись в какой то букве. Поэтому вас вообще нет на сиквеле.
Напишите им то, что вы сейчас тут пишите (результат CURRENT_USER и SUSER_SNAME()), ну и можно IS_SRVROLEMEMBER (хотя ИМХО то, что вы guest, уже будет достаточно).
23 ноя 19, 06:48    [22023423]     Ответить | Цитировать Сообщить модератору
 Re: sysadmin не имеет доступа  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Очень лысый

SELECT SUSER_SNAME()
возвращает мою доменную учётку, тогда как в списке логинов я её не вижу.


потому что они не мапят индивидуальные учетки.
вы член некоей виндовой группы(или даже нескольких)
и вот эту группу(ы) вы должны видеть в списке логинов
25 ноя 19, 10:34    [22024383]     Ответить | Цитировать Сообщить модератору
 Re: sysadmin не имеет доступа  [new]
komrad
Member

Откуда:
Сообщений: 5245
Yasha123
Очень лысый

SELECT SUSER_SNAME()
возвращает мою доменную учётку, тогда как в списке логинов я её не вижу.


потому что они не мапят индивидуальные учетки.
вы член некоей виндовой группы(или даже нескольких)
и вот эту группу(ы) вы должны видеть в списке логинов


Очень лысый, можно выполнить и посмотреть через что предоставлен доступ
exec xp_logininfo 'domain account','all'
25 ноя 19, 13:28    [22024598]     Ответить | Цитировать Сообщить модератору
 Re: sysadmin не имеет доступа  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
можно и просто на логины взглянуть,
все то, что не sa,
то и есть группы, куда входит логин ТС
25 ноя 19, 13:33    [22024608]     Ответить | Цитировать Сообщить модератору
 Re: sysadmin не имеет доступа  [new]
Очень лысый
Member

Откуда: БОМЖ
Сообщений: 590
Согласен, что давать всем подряд админские привилегии это не есть гуд, и пользователей ограничивают в правах в рамках чисто их задач. Но в данном случае задача предполагает админские права, и ИТ-стаф клиента намеревался их предоставить. Но что-то пошло не так. Всем спасибо за идеи! Попробую их заимплементить в общении с админами. О результатах отпишусь.
25 ноя 19, 18:49    [22024955]     Ответить | Цитировать Сообщить модератору
 Re: sysadmin не имеет доступа  [new]
Очень лысый
Member

Откуда: БОМЖ
Сообщений: 590
Итак,
exec xp_logininfo 'domain account','all'
сказала, что у меня нет прав на выполнение таких опасных процедур. Зато IS_SRVROLEMEMBER сказал, что я точно не sysadmin.
Однако мне удалось раздобыть пароль от sa. Когда я подключился, то увидел, что учётка моя действительно добавлена с правами сисадмина. В то же время, когда я запустил
gpresult /V
, то обнаружил, что моя учётка находится в AD группе, которая добавлена в инстанс с ролью public и некоторыми разрешениями вроде просмотра некоторых баз. И, когда я подключаюсь к MS SQL со своей AD учёткой, я имею права именно этой группы. Вот здесь хотелось бы понять, почему так? Ибо, насколько я понимаю, разрешения группы не должны отменять разрешения учётки за исключением denied.

Сообщение было отредактировано: 25 ноя 19, 21:38
25 ноя 19, 21:36    [22025046]     Ответить | Цитировать Сообщить модератору
 Re: sysadmin не имеет доступа  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1369
Очень лысый,
что то у вас сумбур какой то в рассуждениях.

Очень лысый

Однако мне удалось раздобыть пароль от sa. Когда я подключился, то увидел, что учётка моя действительно добавлена с правами сисадмина.

что именно вы увидели?

от имени sa вам бы исполнить:
select suser_name(rm.[member_principal_id]) as [principal_name], sp.[type]
from sys.server_role_members rm
    left join sys.server_principals sp on sp.[principal_id] = rm.[member_principal_id]
where rm.[role_principal_id] = suser_id('sysadmin');

это бы показало какие принципалы включены в роль sysadmin

В то же время, когда я запустил
gpresult /V

то обнаружил, что моя учётка находится в AD группе, которая добавлена в инстанс с ролью public и некоторыми разрешениями вроде просмотра некоторых баз. И, когда я подключаюсь к MS SQL со своей AD учёткой, я имею права именно этой группы. Вот здесь хотелось бы понять, почему так? Ибо, насколько я понимаю, разрешения группы не должны отменять разрешения учётки за исключением denied.


вот этот тезис не сходится с тем что вы озвучили до него. или вы неправильно смотрели


вам надо определить какие токены доступа у вашей учетки. посмотреть это можно выполнив запрос из под своей учетки:
select * from sys.login_token
26 ноя 19, 00:07    [22025116]     Ответить | Цитировать Сообщить модератору
 Re: sysadmin не имеет доступа  [new]
Очень лысый
Member

Откуда: БОМЖ
Сообщений: 590
felix_ff
Очень лысый,
что то у вас сумбур какой то в рассуждениях.

Очень лысый

Однако мне удалось раздобыть пароль от sa. Когда я подключился, то увидел, что учётка моя действительно добавлена с правами сисадмина.

что именно вы увидели?

от имени sa вам бы исполнить:
select suser_name(rm.[member_principal_id]) as [principal_name], sp.[type]
from sys.server_role_members rm
    left join sys.server_principals sp on sp.[principal_id] = rm.[member_principal_id]
where rm.[role_principal_id] = suser_id('sysadmin');

это бы показало какие принципалы включены в роль sysadmin

В то же время, когда я запустил
gpresult /V

то обнаружил, что моя учётка находится в AD группе, которая добавлена в инстанс с ролью public и некоторыми разрешениями вроде просмотра некоторых баз. И, когда я подключаюсь к MS SQL со своей AD учёткой, я имею права именно этой группы. Вот здесь хотелось бы понять, почему так? Ибо, насколько я понимаю, разрешения группы не должны отменять разрешения учётки за исключением denied.


вот этот тезис не сходится с тем что вы озвучили до него. или вы неправильно смотрели


вам надо определить какие токены доступа у вашей учетки. посмотреть это можно выполнив запрос из под своей учетки:
select * from sys.login_token

Я не рассуждаю, а я как чукча: что вижу, о том и пою.

Моя доменная учётка в списке ролей имеет проставленную галочку напротив слов "sysadmin" и "public". При этом она включена в некую группу AD, с некоторыми специфическими правами. И именно эти права она демонстрирует, буде я её использую. Вот я и хочу понять, как так может быть. Впрочем, я уже попросил упырей мою учётку из группы в AD выпилить, а завтра я и посмотрю, как оно повлияет. Заодно и токены проверим, если ничего не поменяется. А пока про них почитаю. Секюрити это не мой кап ов ти, никогда не любил там вдаваться в детали, да и необходимости такой не было.

Сообщение было отредактировано: 26 ноя 19, 00:41
26 ноя 19, 00:37    [22025124]     Ответить | Цитировать Сообщить модератору
 Re: sysadmin не имеет доступа  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31357
Очень лысый
Я не рассуждаю, а я как чукча: что вижу, о том и пою.
Лучше петь о результатах запросов, которые вам дали :-)

А то, знаете, потом выясняется "да там одной буквой отличалось"...
26 ноя 19, 00:43    [22025126]     Ответить | Цитировать Сообщить модератору
 Re: sysadmin не имеет доступа  [new]
Очень лысый
Member

Откуда: БОМЖ
Сообщений: 590
alexeyvg
Очень лысый
Я не рассуждаю, а я как чукча: что вижу, о том и пою.
Лучше петь о результатах запросов, которые вам дали :-)

А то, знаете, потом выясняется "да там одной буквой отличалось"...

результаты запросов я, собственно, озвучил, кроме токенов. Буквами, к сожалению, не отличается. Ну и, собственно, ничто мне сейчас не мешает этот логин просто из инстанса удалить и добавить заново из AD, используя правильные буквы, дабы исключить возможные когнитивные искажения. Но я, собственно, не имею цели пререкаться. Завтра постараюсь подробно проапдейтить топик.
26 ноя 19, 01:11    [22025133]     Ответить | Цитировать Сообщить модератору
 Re: sysadmin не имеет доступа  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Очень лысый
Когда я подключился, то увидел, что учётка моя действительно добавлена с правами сисадмина.

Очень лысый
Не вижу логины, включая свой

вот такого быть не может.
если вы "не видите" свою виндовую учетку в логинах,
но ее "видит" sa, т.е. она точно есть как индивидуальный логин,
то значит или вы в первый раз поднаврали и сами себя видите,
или же учетка, которую видит sa, не ваша.
26 ноя 19, 11:26    [22025359]     Ответить | Цитировать Сообщить модератору
 Re: sysadmin не имеет доступа  [new]
Очень лысый
Member

Откуда: БОМЖ
Сообщений: 590
Yasha123
Очень лысый
Когда я подключился, то увидел, что учётка моя действительно добавлена с правами сисадмина.

Очень лысый
Не вижу логины, включая свой

вот такого быть не может.
если вы "не видите" свою виндовую учетку в логинах,
но ее "видит" sa, т.е. она точно есть как индивидуальный логин,
то значит или вы в первый раз поднаврали и сами себя видите,
или же учетка, которую видит sa, не ваша.

Увы, чистая правда. Если захожу с виндовой аутентификацией, то своей учётки в логинах не вижу, а если с sa, то вижу. Был бы рад, если бы было не так. Правда, нельзя исключать теоретическую возможность, что просочилась какая-то разница в раскладке и т.п.. Т.е. выглядит оно так же, но кто знает. Сейчас буду всё проверять.
26 ноя 19, 18:40    [22025990]     Ответить | Цитировать Сообщить модератору
 Re: sysadmin не имеет доступа  [new]
komrad
Member

Откуда:
Сообщений: 5245
Очень лысый,

ну так проверьте под SA доступ своей виндовой учетки через группы
exec xp_logininfo 'domain\acccount','all'


состав группы sysadmin:
exec sp_helpsrvrolemember 'sysadmin'


если себя там не находите, то
exec sp_addsrvrolemember 'domain\account','sysadmin'
26 ноя 19, 19:16    [22026022]     Ответить | Цитировать Сообщить модератору
 Re: sysadmin не имеет доступа  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31357
Очень лысый
Yasha123
или же учетка, которую видит sa, не ваша.
Правда, нельзя исключать теоретическую возможность, что просочилась какая-то разница в раскладке и т.п.. Т.е. выглядит оно так же, но кто знает.
Именно.
Поэтому и нужно было выполнить скрипты, потому что могут быть 2 логина, а вы думаете, что он один:
select distinct *
from (values
    (N'Очень лысый'),
    (N'Очень лысый'),
    (N'Очeнь лысый')
) t(name)
26 ноя 19, 19:28    [22026035]     Ответить | Цитировать Сообщить модератору
 Re: sysadmin не имеет доступа  [new]
Очень лысый
Member

Откуда: БОМЖ
Сообщений: 590
komrad
Очень лысый,

ну так проверьте под SA доступ своей виндовой учетки через группы
exec xp_logininfo 'domain\acccount','all'


состав группы sysadmin:
exec sp_helpsrvrolemember 'sysadmin'


если себя там не находите, то
exec sp_addsrvrolemember 'domain\account','sysadmin'

Поздно. Админы просто удалили группу из инстанса. Ибо меня из неё удалить было нельзя, так как тогда бы я потерял доступ к RDP. После этого я вообще не смог подключиться к инстансу под своей учёткой.
Тогда я подключился с помощью SA и опять увидел свою учётку с админскими правами. Скопипастил доменное имя из SSMS и сравнил в BeyondCompare с тем, что ввожу, когда логинюсь: мало ли, вдруг какая буква там из другой раскладки. Оказалось, всё идентично. Затем попытался добавить себя из AD в логины. Логин нашёлся только один, ничего похожего. Добавляться отказался: типа уже есть. Затем удалил себя из списка логинов и тут же добавил заново с теми же правами. И тут же смог подключиться, и всё стало хорошо. Хотите верьте, хотите - нет. Жаль, токены не успел посмотреть, пока группу не грохнули.
26 ноя 19, 19:34    [22026039]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить