SQLバックグラウンドから来ています。ユーザーの特定の属性に基づいてデータへのアクセスを制限する場合は、ビューを作成し、ビューの基準に基づいてユーザーに表示されるデータを制限するフィルタとしてそのビューを使用できます。このアプローチは関係に依存しており、今まで私のために働いていました。 NoSqlと戦略とコンセプトの変化を見ると、NoSqlの性質をどのように実装するのか混乱しています。このような問題に対するNoSQLのアプローチは何ですか?ユーザーがユーザーの種類に基づいて特定の行にアクセスしていない場合たとえば、管理者は特定のグループのすべてのレコードを見ることができ、一般的なユーザーはグループ内で公開されているレコードと特定のグループレベルのアイテム、グループ写真、グループメッセージなどしか見ることができないとします。私は本当にこの問題へのSQLのアプローチの観点から考えずに私の頭を包み込むことを試みていますが、私はNoSqlに慣れていないので難題です。データの行に許可を与えるためのNoSQL戦略
答えて
NoSQLデータベースは、多くの点でリレーショナルデータベースとは概念的に異なります。承認とセキュリティは一般的には主要な焦点ではありません。しかし、そのほとんどはその領域で進化しており、きめ細かい認可を受けています。基本的には、特定のデータベースに依存します。
たとえば、Cassandraはプラン(https://issues.apache.org/jira/browse/CASSANDRA-12859)で列レベルのアクセス許可を持ち、HBaseにはセルレベルのアクセス許可(https://www.cloudera.com/documentation/enterprise/5-8-x/topics/cdh_sg_hbase_authorization.html)があります。一方、MongoDBは一般的にはスキーマレスであり、異なる(より複雑な)ドキュメント指向のデータモデルを持ち、低レベルのアクセス制御を実装することを難しくしています。さらに、MongoDBにはビューがあります。
使用しているDBMSに期待されるレベルの権限が組み込まれていない場合は、dbとやりとりするアプリケーション内で実装する必要があります(複数のアプリケーションがある場合、いくつかの使用規則を確立する必要があります)。非正規化モデルを使用することは一般的なことです。異なるロール/グループは、そのロール/グループだけが見ることができるデータを含むさまざまなテーブル/コレクションとやり取りできます(基本的にはRDBMSビューのシミュレーションです)。この非正規化アプローチは通常、より多くの領域を必要とし、コピーを同期して保持する必要があります。 DBMSが投影をサポートしている場合、異なるロール/グループに対して列/フィールドのサブセットを表示することができます(この方法では、少なくとも一部はdb側で処理されます)。
これは遅くても役立ちます。
- 1. Socket.io - 異なる許可レベルのユーザーに放送するための戦略
- 2. PHPを使用したサブドメインの戦略のための戦略
- 3. デバッグのためのアクセシビリティサービス許可を与える
- 4. 大量のデータをキャッシュするための戦略
- 5. 許可与えられたのparam
- 6. TFS2005をSubversionに移行するための戦略
- 7. ライブサイトをMVC構造に移行するための戦略?
- 8. database.ymlをオーバーライドするための戦略
- 9. 半静的データを新鮮に保つための戦略
- 10. NodeJSマングースパスポート局所戦略クエリのMongoDBがエラーを与え、
- 11. Liferayドキュメントライブラリのアクセス許可を与える
- 12. Rails4認可戦略
- 13. JTable行のオブジェクトを検出するための戦略?
- 14. AJAXの注文を実行するための戦略
- 15. 結合時の冗長データを減らすための戦略
- 16. Git:Merge Conflictsを扱うための戦略?
- 17. エージェントビルドのためのJenkinsロールベースの戦略
- 18. デフォルト戦略の戦略パターン
- 19. メッセージキューのための良い戦略?
- 20. アジャイルブランチワークフローのためのGitマージ戦略
- 21. リンカースクリプト:デバッグのための戦略?
- 22. クロスカッティングのための良い戦略
- 23. 従来のアプリケーション移行戦略 - 戦略に必要なアドバイス
- 24. クラウドロックインのリスクを最小限に抑えるためのアーキテクチャ戦略?
- 25. Facebook C#SDKで許可を与える
- 26. NoSQLデータが一貫性を失った場合の回復またはフェイルオーバーの戦略
- 27. bazelアスペクトの出力ファイルにデータを蓄積するための推奨戦略
- 28. データの異なる列に基づいて並べ替えるために戦略デザインパターン(C#)を使用する
- 29. python - リターンプレスで続行する許可を与える
- 30. 許可を与えた後にselinux、Avcの問題