問題タブ [row-level-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2843 参照

security - Hive のビューへのアクセスの提供

Hadoop/Hive は初めてです。Hive の VIEWS に関する質問があります。

Hive には、テーブルの特定の行へのアクセス権を一部のユーザーに付与し、テーブルの特定の列へのアクセス権を一部のユーザーに付与する必要があるという要件があります。Hive で VIEW を作成できることはわかっています。しかし、ベース テーブルへのアクセスを許可せずに、GRANT ステートメントを使用して VIEWS のみにアクセスをユーザーに提供することは可能ですか?

これが不可能な場合、Hive で列レベルまたは行レベルのアクセスのみを提供する他の方法はありますか?

私にお知らせください。助けてくれてありがとう。

0 投票する
1 に答える
177 参照

oracle11g - DB ユーザーが SELECT 権限を持っている場合にテーブル データの表示を制限する方法

Oracle DB ユーザーは、DB スキーマのすべてのテーブルに対する SELECT 権限を持っています。ユーザーがテーブル データを表示できるように制限できますか。ユーザーはテーブルを選択できる必要がありますが、データを表示することはできません。

この特定の要件は、DB 設計をレビューし、Oracle Data Modeler 3.3 を使用して DB 用の ALTER スクリプトを生成するユーザーに必要です。テーブル設計を確認して ERD と比較することができます。

FGAC または RLS を使用して達成できますか?

0 投票する
1 に答える
489 参照

oracle - Oracle VPD / RLS では、悪意のあるユーザーの述語による情報漏えいをどのように防いでいますか?

Oracle VPD (Virtual Private Database、別名ファイングレイン セキュリティ、ラベルベース セキュリティの基礎) のドキュメントを読んでいますが、把握するのに苦労しているものがあります。WHEREVPD は、句内の悪意のある関数を使用してユーザーが情報を漏えいするのをどのように防ぎますか?

cust_no = SYS_CONTEXT('order_entry', 'cust_num');( Oracle VPDチュートリアルのように)静的述語を生成するVPDポリシーがあるとします。

その結果、クエリが書き換えられるため、次のようになります。

になります:

どこまでもうまい。しかし、ユーザーが次のように書いた場合はどうなるでしょうか。

? Wheremy_malicious_functionは、悪意のあるユーザーのコントロールが所有する別のテーブルに各値を挿入し、そのテーブルを選択して機密データを表示できるようにします。

ドキュメントによると、VPDリライタは次のようなものを生成します。

ただし、オラクルは、サブ条項の順序を自由に変更できますWHEREmy_malicious_functionそれがより安価またはより選択的な述語になると思われる場合、最初に実行するのを止めるものは何ですか? (セキュリティ条件がSYS_CONTEXTルックアップの場合はありそうにありませんが、条件が別のテーブルに対するサブクエリである場合、またはそれ自体が UDF である場合は非常に可能性が高くなります)。

ドキュメントを読みましたが、VPD 述語とユーザー提供の述語の実行に関する順序の保証がどこで指定されているかわかりません。そのような保証、または悪意のある述語関数から保護するための他のメカニズムはありますか?

(VPD ポリシーの悪意のある述語関数が、悪意のある関数を参照する述語を生成することによって、意図しないユーザー提供のコードを特権ユーザーに実行させる可能性があるかどうかについても興味がありますが、それは多少異なります。)

0 投票する
1 に答える
221 参照

sql-server-2008 - マルチテナント アプリのテーブルをフィルター処理するように SQL Server ユーザーを構成する方法

マルチテナント SQL データベースにアクセスする顧客のサーバーで実行される EXE アプリを構築する必要があります。

Web アプリで使用するテーブルごとに、列 SubscriberId を使用して、SubscriberId に属するレコードのみにユーザーを制限します。これは (サーバー上で) 完全に正常に機能します。

Exchange の連絡先と予定を SQL テーブルに同期する、サーバー上で実行される Exchange to SQL サービスがあります。問題は、顧客がサーバー上のデータにアクセスするための Exchange 'ApplicationImpersonation' ロールを付与する必要があることです。これは、顧客の Exchange データベース ストア全体にアクセスできることを意味します。

ほとんどの顧客は、そのアクセス レベルを喜んで許可してくれますが、一部の顧客は、そのレベルのアクセスを望んでいません。それは理解できます。

私たちの同期アプリは C# .NET コンソール アプリであり、エンド ユーザーがサーバーにアプリをインストールして、サーバーとリモートで同期できるように調整したいと考えています。

質問: SQL Server 2008R2 で、WHERE SubscriberId = 201 (たとえば) でフィルタリングされたそのユーザーの行にのみアクセスできるユーザーを作成することは可能ですか?

サーバーへのポート 1433 アクセスを許可し、App.config の接続文字列でユーザー/パスワードを使用します。

その場合、Windows exe アプリで管理パネルを作成して、その SQL ユーザー/パスワードと Exchange スーパーユーザーをセットアップできます。その後、リモートで同期できますが、SQL データベース内の自分のレコードのみが表示されます。

それ以外の場合は、API と別のセキュリティ スキームを使用するようにアプリを作り直す必要があるようです。それは明らかにもっと多くの作業になります:-(

ありがとう、チャールズ

0 投票する
1 に答える
4493 参照

tableau-api - Tableau で複数レベルの行レベル セキュリティを作成するにはどうすればよいですか?

Tableau 8.1 で自動化された行レベル セキュリティを使用しようとしていますが、最高レベルでセキュリティを作成すると、セキュリティがレベルの子に渡されません。アクセスを許可したいすべてのオブジェクトを含む大規模な Excel シートを作成することによってのみ、これを達成できます。手動の方法を使用することもできますが、それは面倒です。誰かがこれを回避する方法を見つけたと確信していますが、オンラインで何も見つかりません。

0 投票する
3 に答える
2777 参照

database - クライアント データベース シナリオにおける行レベルのセキュリティ

クライアント -> データベース環境での使用に適した行レベルのセキュリティ制御 (プロキシ、中間者 Web サービス、またはストアド プロシージャなどを介して) を実装するための適切なパターンを探しています。クライアントとデータベースの両方を制御します。いくつかの要件:

  • ユーザーが参照権限のないクエリ結果の行を参照できないようにする
  • ユーザーが自分の行をテーブルに INSERT および UPDATE できるようにし、それらを表示する権限をユーザーに与える
  • (ソフト要件) ユーザーが自分の行を読み書きするアクセス権を他のユーザーに付与できるようにする
  • Linux で実行されるオープンソースまたは低コストのソリューション。私が理解しているように、行レベルのセキュリティをそのまま実装している無料のデータベースはありません。Oracle はこれをサポートしていますが、あまりにも $$$$ です。Postgresは 9.4 でこれを実装している可能性がありますが、もともとは 9.3 を対象としており、スリップしており、ML で再びスリップする可能性があるという議論があります。Postgres がこの機能に関して最も進んでいるように見えるという理由だけで、postgres を使用することを暫定的に考えています。

私が持っていたいくつかの(あまり良くない)アイデア:

  • postgresql のセキュリティ バリア ビューを使用して、基になるテーブルへのユーザー アクセスを拒否します。残念ながら、行をセキュリティ バリア ビューに挿入する適切な方法はないため、一部の特権プロキシ/Web サービスで挿入ステートメントを処理する必要があります。これを正しくするのは難しいようです。
  • 通常のビューを使用し、基になるテーブルへのユーザー アクセスを拒否します。これは可能insertですが、権限をかなり厳密にロックダウンする必要があり (たとえば、関数を作成しない)、情報を漏らす多くの落とし穴 (0 による除算など) があるようです
  • SQL のサブセットを定義し、データベースとの唯一の通信ポイントとなるプロキシを作成します。プロキシは SQL クエリを解析し、それを書き換えてセキュリティ要件を適用します。これは一般的には難しいようですが、postgres が実際に行レベルのセキュリティを実装するまでは、非常に小さな SQL サブセットで済むかもしれません。
  • 異なるユーザー (または異なる DB) に対して異なるテーブルを用意するだけです。ただし、これが多くのユーザーにどれだけうまくスケーリングされるかはわかりません。また、これはソフト要件を満たしていないようです。
  • これを実際にサポートしている商用だが妥当なコストの DB を見つける
  • ベールを使用しますが、維持されていないようで、他のソリューションのほとんどの制限があります

私はこのトピックについて多くのグーグル検索を行ってきましたが、実際のシナリオで誰かがこの問題をどのように解決したかについての事後分析をまだ見ていません. MS SQL に関するドキュメントはいくつかありますが、MySQL では推奨されないようで、基本的に postgres に関する記事は存在しません。

これは非常に一般的な問題のように思えますが、多くの人が Web アプリケーションを作成していて、事前に精査された特定のクエリにユーザーを手錠することに満足していると思います。私の顧客。

0 投票する
0 に答える
646 参照

jasper-reports - ジャスパーは行レベルで行レベルのセキュリティを報告します

jasperserver 5.5 を使用しています。ユーザー レベルでの行セキュリティは正常に機能していますが、ロール レベルで問題が発生しているようです。

これをJIProfileAttributeに挿入しました

INSERT INTO JIProfileAttribute( id, attrName, attrValue, principalobjectclass, principalobjectid) 値 (8, 'test_attr', 'val1,val2,val3, 'com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate.RepoRole', 7);

これは私のセキュリティ ファイルのスニペットです。

すべてのドキュメントは、ユーザー レベルでのみ話します。それらを役割レベルにする方法はありますか??

どんな助けでも大歓迎です。ありがとう!