Пожалуйста, может кто-нибудь посоветовать, возможно ли иметь хранимую процедуру в схеме [dbo] для выбора данных из одной таблицы в одной схеме для доступа пользователей через один роль базы данных и выбирать данные из одноименной таблицы в другой схеме для доступа пользователей через другую роль базы данных?
Например, если у меня есть три схемы в моей базе данных:
- дбо
- зеленый
- красный
У меня есть два входа в базу данных [RedLogin] и [GreenLogin]. Они подключаются к моей базе данных, используя соответствующих пользователей базы данных [RedUser] и [GreenUser]. Эти пользователи являются членами соответствующих ролей базы данных [RedRole] и [GreenRole].
- [RedUser] имеет схему по умолчанию [red].
- [GreenUser] имеет схему по умолчанию [green].
- [RedRole] имеет разрешение на выполнение в [dbo] и разрешение на выбор в схеме [red].
- [GreenRole] имеет разрешение на выполнение в [dbo] и разрешение на выбор в схеме [green].
- В схеме [зеленый] у меня есть таблица с именем [Пользователь].
- В схеме [red] у меня есть таблица с именем [Пользователь].
В схеме [dbo] у меня есть хранимая процедура с именем [User_GetAll], которая выполняется
ВЫБЕРИТЕ * ОТ ПОЛЬЗОВАТЕЛЯ;
Я бы хотел:
- Для пользователей, которые входят в систему с помощью [Redlogin] и вызывают [User_GetAll], получают всех пользователей из [red].[User< /strong>] таблица.
- Для пользователей, которые входят в систему с помощью [Greenlogin] и вызывают [User_GetAll], получают всех пользователей из [green].[User< /strong>] таблица.
Это вообще возможно? Если да, то как лучше всего это сделать, пожалуйста? Спасибо.
Обратите внимание: приведенный выше сценарий предназначен только для того, чтобы получить представление о том, чего я пытаюсь достичь. В реальном проекте есть много таблиц и хранимых процедур, к которым нужно будет применить решение.