powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выборка из sys.sysusers
13 сообщений из 13, страница 1 из 1
Выборка из sys.sysusers
    #39636875
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2016

Делаю запрос:
-- sa
SELECT * FROM sys.sysusers
---
32 записи

-- доменный юзер
SELECT * FROM sys.sysusers
---
22 записи


Нету части моих датабазе ролей.
В чем проблема?
...
Рейтинг: 0 / 0
Выборка из sys.sysusers
    #39636877
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp_helptext 'sys.sysusers'
...
Рейтинг: 0 / 0
Выборка из sys.sysusers
    #39636878
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что Metadata Visibility
...
Рейтинг: 0 / 0
Выборка из sys.sysusers
    #39636891
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей АлексеевичПотому что Metadata Visibility

Хорошо, пишут
Queries on system views might only return a subset of rows, or sometimes an empty result set.

Это похоже на мой случай, но как определить, к какой записи о датабазе роли я имею доступ, к какой нет?
Если бы я выбирал списко таблиц или вью, тогда ясно, нет прав к таблице, она не будет в списке.
А роли?
...
Рейтинг: 0 / 0
Выборка из sys.sysusers
    #39637166
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может ли юзер определить он нормальный или "неполноценный" ? чтобы понимать, что запросы к вью типа sys.sysusers делать не надо?
...
Рейтинг: 0 / 0
Выборка из sys.sysusers
    #39637198
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинМожет ли юзер определить он нормальный или "неполноценный" ? чтобы понимать, что запросы к вью типа sys.sysusers делать не надо?
Код: sql
1.
exists(select * from fn_my_permissions(null, 'database') where permission_name in (N'ALTER ANY USER', N'ALTER ANY ROLE') having count(*) = 2)
...
Рейтинг: 0 / 0
Выборка из sys.sysusers
    #39637207
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это потому, что в данном случае, похоже, доменный юзер не есть логин ,
а база -- contained .
т.е. юзер создан напрямую в базе, минуя создание логина.
а sys.sysusers это всего лишь compatibility view
и его не стОит использовать в новых версиях,
а судя по contained, сервер не ниже 2012-ого.

это вью при использовании новых фич ведет себя загадочно,
в частности, не выдает fixed database roles contained-юзеру.
---
Гавриленко Сергей АлексеевичПотому что Metadata Visibility
в обычной не базе создайте бесправного юзера и убедитесь,
что он прекрасно видит fixed database roles , если опрашивает sysusers:
Код: sql
1.
2.
3.
4.
5.
create user test without login;

execute as user = 'test';
select * from sys.sysusers;
revert;
...
Рейтинг: 0 / 0
Выборка из sys.sysusers
    #39637218
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123это потому, что в данном случае, похоже, доменный юзер не есть логин ,
а база -- contained .
т.е. юзер создан напрямую в базе, минуя создание логина.
а sys.sysusers это всего лишь compatibility view
и его не стОит использовать в новых версиях,
а судя по contained, сервер не ниже 2012-ого.

это вью при использовании новых фич ведет себя загадочно,
в частности, не выдает fixed database roles contained-юзеру.
---
Гавриленко Сергей АлексеевичПотому что Metadata Visibility
в обычной не базе создайте бесправного юзера и убедитесь,
что он прекрасно видит fixed database roles , если опрашивает sysusers:
Код: sql
1.
2.
3.
4.
5.
create user test without login;

execute as user = 'test';
select * from sys.sysusers;
revert;




я не писал нигде, что база контейнед, это обычная база и таких у меня десяток
...
Рейтинг: 0 / 0
Выборка из sys.sysusers
    #39637230
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупиня не писал нигде, что база контейнед, это обычная база и таких у меня десяток
тогда вопрос, какие именно роли не видно,
пользовательские или fixed ?
если у юзера нет прав, которые перечислил invm ,
он видит в юзерах лишь себя и те роли, куда сам входит.
---
кстати, чтобы видеть "не только себя в юзерах", можно и не иметь ALTER ANY USER, ALTER ANY ROLE
достаточно иметь VIEW DEFINITION
...
Рейтинг: 0 / 0
Выборка из sys.sysusers
    #39637262
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123Ролг Хупиня не писал нигде, что база контейнед, это обычная база и таких у меня десяток
тогда вопрос, какие именно роли не видно,
пользовательские или fixed ?
если у юзера нет прав, которые перечислил invm ,
он видит в юзерах лишь себя и те роли, куда сам входит.
---
кстати, чтобы видеть "не только себя в юзерах", можно и не иметь ALTER ANY USER, ALTER ANY ROLE
достаточно иметь VIEW DEFINITION

часть пользовательских ролей, скажем их всего 12, sa видит все 12, а юзер только 2
...
Рейтинг: 0 / 0
Выборка из sys.sysusers
    #39637279
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупинчасть пользовательских ролей, скажем их всего 12, sa видит все 12, а юзер только 2
ну так про это уже Гавриленко написал:
обычный бесправный юзер видит лишь те роли, куда сам входит (+ фиксированные)
для того, чтобы видеть все роли, необходимо иметь alter any role
либо view definition .
...
Рейтинг: 0 / 0
Выборка из sys.sysusers
    #39637283
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
под доменным юзером сделай
Код: sql
1.
select * from fn_my_permissions(null, 'database') 


и убедись, что не имеет ни то, ни другое.
выдай одно из них юзеру -> будет видеть все роли
...
Рейтинг: 0 / 0
Выборка из sys.sysusers
    #39637519
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123под доменным юзером сделай
Код: sql
1.
select * from fn_my_permissions(null, 'database') 


и убедись, что не имеет ни то, ни другое.
выдай одно из них юзеру -> будет видеть все роли

ок, ясно, спасибо.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выборка из sys.sysusers
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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