Mic*_*ens 2 sql-server-2008 sql-server view
我目前正在 SaaS BI 产品中创建多租户数据架构。
该产品使用共享数据库和共享架构,但具有租户视图过滤器和租户数据加密(此处的灵感来源:http : //msdn.microsoft.com/en-us/library/aa479086.aspx)
创建视图过滤器时,我可以执行以下两项操作:
CREATE VIEW TenantEmployees AS
SELECT * FROM Employees WHERE TenantID = SUSER_SID()
CREATE VIEW TenantEmployees AS
SELECT * FROM Employees WHERE TenantID = SUSER_ID()
Run Code Online (Sandbox Code Playgroud)
使用 SID() 我正在使用如下所示的安全标识符:
0x3425F1595A67774ABF485CDC30285443
使用 ID() 我正在使用看起来像这样的普通标识符:
265
哪一个绝对最好用,为什么?:) 我希望两者都是绝对独特的,并且永远不会在新的用户登录中重复使用
出于这个原因,我会使用 SUSER_SID:
sys.server_principals由 Active Directory(Windows 登录)或 SQL Server 生成的 SID 列如果将数据库移动到另一台服务器