DATABASE_PRINCIPAL_ID (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics

Эта функция возвращает идентификационный номер субъекта в текущей базе данных. Дополнительные сведения о субъектах см. в статье Субъекты (ядро СУБД).

Соглашения о синтаксисе Transact-SQL

Синтаксис

DATABASE_PRINCIPAL_ID ( 'principal_name' )  

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

principal_name
Выражение типа sysname, представляющее субъект. Если аргумент principal_name не задан, DATABASE_PRINCIPAL_ID возвращает идентификатор текущего пользователя. DATABASE_PRINCIPAL_ID необходимо заключить в скобки.

Типы возвращаемых данных

int
Значение NULL, если субъект базы данных не существует.

Замечания

Используйте DATABASE_PRINCIPAL_ID в списке выбора, предложении WHERE или любом другом месте, допускающем выражение. Дополнительные сведения см. в статье Выражения (Transact-SQL).

Примеры

А. Извлечение идентификатора текущего пользователя

В приведенном ниже примере возвращается идентификатор субъекта базы данных текущего пользователя.

SELECT DATABASE_PRINCIPAL_ID();  
GO  

B. Извлечение идентификатора указанного участника базы данных

В приведенном ниже примере возвращается идентификатор субъекта базы данных для роли базы данных db_owner.

SELECT DATABASE_PRINCIPAL_ID('db_owner');  
GO  

См. также

Субъекты (ядро СУБД)
Иерархия разрешений (ядро СУБД)
sys.database_principals (Transact-SQL)