0

SQL Server の RLS が Windows 認証を使用していることは知っていますが、外部認証を使用することはできますか? Google や Microsoft auth のような?

C# Web API 2 を使用してテストを行っていますが、方法がわかりません。

前もって感謝します!

4

1 に答える 1

2

Row-Level-Security機能はWindows 認証を使用しません。フィルタリング述語として使用される独自の関数を作成しています。たとえば、組み込み関数を使用できますUSER_NAME()(完全な動作例については、公式ドキュメントを確認してください)。

CREATE SCHEMA Security;  
GO  

CREATE FUNCTION Security.fn_securitypredicate(@SalesRep AS sysname)  
    RETURNS TABLE  
WITH SCHEMABINDING  
AS  
    RETURN SELECT 1 AS fn_securitypredicate_result   
WHERE @SalesRep = USER_NAME() OR USER_NAME() = 'Manager'; 

この関数は、列の行がSalesRepクエリを実行しているユーザーと同じである@SalesRep = USER_NAME()場合 ( )、またはクエリを実行しているユーザーが管理者ユーザーである場合( ) に 1 を返しますUSER_NAME() = 'Manager'

sp_set_session_contextSESSION_CONTEXTを使用して、より複雑なロジックを構築することもできます。たとえば、.netコード内およびset session context開いている SQL セッションのセキュリティ アクセスを計算できます。次に、SESSION_CONTEXTフィルタリング機能でアクセスを確認できます。

于 2018-02-27T07:38:52.970 に答える