我正在使用 Microsoft SQL Server 构建具有共享表结构的 Multi-Tenancy 应用程序。
我想知道是否可以通过sql server连接传递tenantID参数。我不想为每个租户创建单独的用户帐户。
目前我看到两种方法:通过 ApplicationName 或 WorkstationID
最诚挚的问候, 阿列克谢·扎哈罗夫
最佳答案
我会使用Application Name of the connect string ,然后很容易在 SQL 中使用 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
关于sql-server - 通过sql server连接传递租户id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2873104/