Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
hegth Member Откуда: Сообщений: 13 |
Привет. Подскажите по пермиссиям роли dbcreator. Не понимаую почему у sql login есть пермиссия alter any database, а у windows user ее нет. Соответственно для sql она раскрывается по covering на базу master, а у windows login такого нет. Может кто знает почему такая разница? Спасибо. |
16 сен 19, 15:05 [21971702] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1968 |
потому что первый логин засунут в эту группу, а второй нет
какое еще раскрытие и что есть covering? фигня какая-то. да, членство в роли dbcreator дает логину alter any database, но при чем тут "она раскрывается по covering на базу master"? серверное право или есть, или его нет, при чем тут какая-то база? |
||||
16 сен 19, 15:44 [21971741] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1968 |
**"первый логин засунут в эту группу" читать как "первый логин засунут в эту роль" |
16 сен 19, 15:45 [21971743] Ответить | Цитировать Сообщить модератору |
hegth Member Откуда: Сообщений: 13 |
Оба логина с этой ролью, но у windows user нет права "alter any database", а у sql user - есть. Вопрос почему так? |
||
16 сен 19, 15:50 [21971750] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1968 |
ну так виндовый юзер можрет входить в группу, у которой deny alter any database. или ему самому явно сделали deny alter any database |
||||
16 сен 19, 15:53 [21971755] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1968 |
exec as login = 'windows_login' select * from sys.login_token where principal_id > 0; revert; выполните код, подставив нужный виндовый логин, увидите, откуда еще он наследует права/запреты |
16 сен 19, 15:56 [21971757] Ответить | Цитировать Сообщить модератору |
hegth Member Откуда: Сообщений: 13 |
Нет, дело не в членствах и явных запретах. Просто так работае sql server(проверено эксперементами). А почему он так работает инфы найти не могу. |
||||
16 сен 19, 15:59 [21971761] Ответить | Цитировать Сообщить модератору |
DaniilSeryi Member Откуда: Сообщений: 1831 |
потому что самому windows user отдельно запрещено "alter any database", вот и всё. Запрет берёт верх над разрешением. или windows user засунули в ещё какую-нибудь группу / роль, у которой запрет на "alter any database" |
||||
16 сен 19, 16:04 [21971769] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1968 |
вы продолжаете нести фигню. вот мой код создает виндовый логин, его засовывает в dbcreator, затем проверяем права. все с ними в порядке: create login [Dev4\Mary] from windows alter server role dbcreator add member [Dev4\Mary]; exec as login = 'Dev4\Mary' select system_user, * from sys.fn_my_permissions(null, 'server') revert; К сообщению приложен файл. Размер - 14Kb |
||||
16 сен 19, 16:08 [21971776] Ответить | Цитировать Сообщить модератору |
hegth Member Откуда: Сообщений: 13 |
exec as login = 'Windows login' select * from sys.login_token where principal_id > 0; revert; 288 0x0105000000000005150000008A035856B1986F5B58521245CB0D0000 Window login WINDOWS LOGIN GRANT OR DENY 2 0x02 public SERVER ROLE GRANT OR DENY 9 0x09 dbcreator SERVER ROLE GRANT OR DENY EXECUTE AS Login = Windows Login'; SELECT * FROM fn_my_permissions(null, 'SERVER') ORDER BY subentity_name, permission_name ; REVERT; server CONNECT SQL server CREATE ANY DATABASE server VIEW ANY DATABASE SQL Login: EXECUTE AS Login = 'SQL Login'; SELECT * FROM fn_my_permissions(null, 'SERVER') ORDER BY subentity_name, permission_name ; REVERT; server ALTER ANY DATABASE server CONNECT SQL server CREATE ANY DATABASE server VIEW ANY DATABASE |
||||
16 сен 19, 16:11 [21971778] Ответить | Цитировать Сообщить модератору |
hegth Member Откуда: Сообщений: 13 |
А теперь создай sql login и сделай тоже самое. |
||||
16 сен 19, 16:13 [21971780] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1968 |
о да блин, да одинаковые у них права, вот вам скульный логин:create login dbcreator_login with password = '*****', check_policy = off; alter server role dbcreator add member dbcreator_login; exec as login = 'dbcreator_login' select * from sys.fn_my_permissions(null, 'server'); revert; по вашему выхлопу скриптов выходит, что как раз у сиквельного одно право лишнее. у него и смотрите login_token К сообщению приложен файл. Размер - 13Kb |
16 сен 19, 16:16 [21971785] Ответить | Цитировать Сообщить модератору |
hegth Member Откуда: Сообщений: 13 |
|
||||
16 сен 19, 16:16 [21971786] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1968 |
нет, не смущает. это как раз то, что у вас лишнее. выясняйте, откуда оно. или выдано скульному логину в явном виде, или выдано еще одной роли, куда он входит |
||
16 сен 19, 16:19 [21971788] Ответить | Цитировать Сообщить модератору |
hegth Member Откуда: Сообщений: 13 |
Спс, буду разбираться, судя по сайту майкрософт оно быть должно. К сообщению приложен файл. Размер - 65Kb |
||||
16 сен 19, 16:27 [21971795] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1968 |
а оно есть. только оно какое-то "скрытое". я хочу сказать, что хотя sys.fn_my_permissions(null, 'server') не показывает в явном виде alter any database, право такое у членов роли dbcreator есть. т.е. члены этой роли спокойно выполняют alter database на любой базе. есть предположение, что в явном виде право alter any database появилось, начиная с 2012-ого. и теперь его можно выдать независимо от роли. проверить не могу, у меня сейчас нет под рукой младших версий. но если это так, то это право "привносилось" логину членством в роли, но т.к. его не было "в явном виде", то fn_my_permissions и не показывает его |
||
17 сен 19, 13:45 [21972516] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1968 |
и кстати, вот так можно увидеть, что ALTER ANY DATABASE и без того есть у DBCREATOR-а: exec sp_srvrolepermission 'dbcreator'; К сообщению приложен файл. Размер - 10Kb |
17 сен 19, 16:30 [21972686] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |