【发布时间】:2010-06-09 08:22:08
【问题描述】:
我正在使用 Microsoft SQL Server 构建具有共享表结构的多租户应用程序。
我想知道是否可以通过 sql server 连接传递tenantID 参数。我不想为每个租户创建单独的用户帐户。
目前我看到两种方式:通过 ApplicationName 或 WorkstationID
最好的问候, 阿列克谢·扎哈罗夫
【问题讨论】:
我正在使用 Microsoft SQL Server 构建具有共享表结构的多租户应用程序。
我想知道是否可以通过 sql server 连接传递tenantID 参数。我不想为每个租户创建单独的用户帐户。
目前我看到两种方式:通过 ApplicationName 或 WorkstationID
最好的问候, 阿列克谢·扎哈罗夫
【问题讨论】:
我会使用Application Name of the connect string,然后使用APP_NAME (Transact-SQL) 在TSQL 中很容易获得。
不过,您也可以考虑使用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
【讨论】: