我正在使用 Microsoft SQL Server 构建具有共享表结构的多租户应用程序。
我想知道是否可以通过 sql server 连接传递tenantID 参数。我不想为每个租户创建单独的用户帐户。
目前我看到两种方式:通过 ApplicationName 或 WorkstationID
最好的问候, 阿列克谢·扎哈罗夫
我正在使用 Microsoft SQL Server 构建具有共享表结构的多租户应用程序。
我想知道是否可以通过 sql server 连接传递tenantID 参数。我不想为每个租户创建单独的用户帐户。
目前我看到两种方式:通过 ApplicationName 或 WorkstationID
最好的问候, 阿列克谢·扎哈罗夫
我会使用连接字符串的应用程序名称,然后很容易在 TSQL 中使用APP_NAME (Transact-SQL)获得。
但是,您也可以考虑使用CONTEXT_INFO (Transact-SQL)。
--to set value
DECLARE @CONTEXT_INFO varbinary(128)
SET @CONTEXT_INFO =cast('Anything Here!!'+REPLICATE(' ',128) as varbinary(128))
SET CONTEXT_INFO @CONTEXT_INFO
--to use value
IF CAST(CONTEXT_INFO() AS VARCHAR(128))='Anything Here!'
BEGIN
--do something
END