JP6918120B2 - マルチテナントデータベースシステムにおけるデータ共有 - Google Patents

マルチテナントデータベースシステムにおけるデータ共有 Download PDF

Info

Publication number
JP6918120B2
JP6918120B2 JP2019536902A JP2019536902A JP6918120B2 JP 6918120 B2 JP6918120 B2 JP 6918120B2 JP 2019536902 A JP2019536902 A JP 2019536902A JP 2019536902 A JP2019536902 A JP 2019536902A JP 6918120 B2 JP6918120 B2 JP 6918120B2
Authority
JP
Japan
Prior art keywords
account
shared
access
data
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019536902A
Other languages
English (en)
Other versions
JP2020504395A (ja
Inventor
ダジュヴィル,ブノワット
クルアネス,ティエリー
ヘンチェル,マーティン
ポヴィネック,ピーター
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Snowflake Computing Inc
Original Assignee
Snowflake Computing Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Snowflake Computing Inc filed Critical Snowflake Computing Inc
Publication of JP2020504395A publication Critical patent/JP2020504395A/ja
Application granted granted Critical
Publication of JP6918120B2 publication Critical patent/JP6918120B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

本開示は、データベースに関し、より具体的には、マルチテナントデータベースシステムにおけるデータ共有に関する。
データベースは、コンピューティングアプリケーションでのデータの格納及びアクセスのために広く使用される。データベースは、クエリを使用して読み出し、変更、又は削除し得るデータを含む又は参照する1つ以上のテーブルを含み得る。データベースは、個人情報又はその他のセンシティブな情報を格納及び/又は該情報にアクセスするのに使用され得る。データベースのデータのセキュアな格納及びアクセスは、無認証のアクセスを防止するための暗号化形式でデータを暗号化及び/又は格納することによって提供され得る。幾つかの場合、データ共有は、データのセットに対するクエリを他の関係者に実施させることが望ましいことがある。
本開示の非限定的で非包括的な実装は、後続の図を参照しながら説明され、ここで、同様の参照番号は、別段の定めがない限り、様々な視点全体を通して同様又は類似の部分を指す。本開示の利点は、後続の説明及び添付の図面に関してより良く理解されてくるであろう。
一実施形態に従ったマルチテナントデータベース内のアカウントを説明する概略的ブロック図である。 一実施形態に従ったデータベースのサービスを提供し、該サービスにアクセスするためのシステムを説明する概略図である。 一実施形態に従ったストレージリソースとコンピューティングリソースとの分離を有するマルチテナントデータベースを説明する概略図である。 一実施形態に従ったオブジェクト階層を説明する概略的ブロック図である。 一実施形態に従ったロールベースのアクセスを説明する概略図である。 一実施形態に従ったロール間の使用権限を説明する概略図である。 一実施形態に従った共有オブジェクトを説明する概略図である。 一実施形態に従ったクロスアカウント権限を説明する概略図である。 一実施形態に従った共有コンポーネントのコンポーネントを説明する概略的ブロック図である。 一実施形態に従ったアカウント間でデータベースのデータを共有するための方法を説明する概略的フローチャート図である。 本明細書に開示される1つ以上の実施形態と一致する例示的コンピューティングデバイス又はシステムを描写するブロック図である。
マルチテナントデータベース又はマルチテナントデータウェアハウスは、一度に複数の別個の顧客アカウントをサポートする。例として、図1は、多くの異なる顧客アカウントA1、A2、A3、An等をサポートするマルチテナントデータベース又はデータウェアハウスを説明する概略的ブロック図である。顧客アカウントは、異なるアクセスクレデンシャル、異なるデータ格納位置(AmazonウェブサービスS3バケット等)、及び異なるアカウントレベルの暗号化キーに接続するための異なるユニフォームリソースロケータ(URL)を含む複数のセキュリティ制御によって分離され得る。したがって、各顧客は、顧客自身のデータを閲覧、読み出し、及び/又は書き込むことを可能にのみし得る。
意図的に、顧客が別の顧客のデータを閲覧、読み出し、又は書き込むことは不可能であり得る。幾つかの場合、顧客アカウントの厳格な分離は、マルチテナントデータウェアハウス又はデータベースシステムの重要要素である。
出願人は、クロスアカウントのデータ共有を可能にすることが時には望ましいことがあり得ることを認識している。しかしながら、現在のマルチテナントデータベースシステムは、瞬時でゼロコピーの容易に制御可能な仕方では、異なる顧客アカウント間でのデータの共有を何ら可能にしない。Amazon Redshift(登録商標)等の既存のオンラインデータウェアハウスは、物理的なデータのコピーなしに、データ共有をサポートしない。Oracleデータベースサーバ(登録商標)又はMicrosoft SQLサーバ(登録商標)等のオンプレミスなデータベースシステムは、個別のデータベースのインストールの物理的分散のために、定義上はオンラインのデータ共有をサポートしない。
前述に基づいて、出願人は、マルチテナントオンラインデータベースシステムのためのシステム、方法、及びデバイスを発展させている。幾つかの実施形態は、異なる顧客アカウント間のデータの共有を可能にし、データをコピーする必要なく瞬時にデータにアクセス可能にし得る。幾つかの実施形態は、顧客が共有を望むデータへのアクセスを可能にしつつ、所望のデータの分離を維持するためのきめ細やかな制御を使用して、データへのアクセスを提供する。
一実施形態に従えば、コンピュータ実装の方法は、共有ロールを含む第1のアカウント内に共有オブジェクトを生成することを含む。方法は、1つ以上のアクセス権を共有ロールと関連付けることを含み、ここで、1つ以上のアクセス権は、第1のアカウント内の如何なるオブジェクトが共有オブジェクトに基づいてアクセス可能であるかを指し示す。方法は、第1のアカウント内の共有ロール又は共有オブジェクトへのクロスアカウントアクセス権を第2のアカウントに権限付与することを含む。方法は、第1のアカウントのデータ又はサービスにアクセスするためのリクエストを第2のアカウントから受信することと、第1のアカウントのデータ又はサービスに基づいて、第2のアカウントに応答を提供することを更に含む。
一実施形態に従えば、マルチテナントデータベースシステムは、クロスアカウント権コンポーネントと、エイリアスコンポーネントと、アクセスコンポーネントとを含む。クロスアカウント権コンポーネントは、1つ以上の共有リソースへのクロスアカウントアクセス権が共有者アカウントによって対象アカウントに権限付与されていると判定するように構成される。エイリアスコンポーネントは、共有者アカウント内の1つ以上の共有リソースの内の共有リソースに対応するエイリアスオブジェクトを対象アカウント内に創出するように構成される。アクセスコンポーネントは、エイリアスオブジェクトに向けられたリクエストを使用して、対象アカウントが共有リソースにアクセスすることを可能にするように構成される。
別の実施形態に従えば、マルチテナントデータベース内の共有データへのアクセスを提供するための方法は、第1のアカウントが第1のアカウントのデータベースオブジェクトに第2のアカウントのアクセスを権限付与していると判定することを含む。方法は、第1のアカウントに対応するデータオブジェクトにアクセスするためのリクエストを第2のアカウントから受信することを含む。方法は、第1のアカウントに対応する仮想ウェアハウスを使用して該リクエストを処理することを含む。仮想ウェアハウスは、該リクエストへの応答を生成するために、第1のアカウントに対応するストレージレイヤ内のデータにアクセスするように構成された1つ以上のコンピュートノードのセットを含む。
本明細書に開示される実施形態は、オンラインデータベース及び/又はオンラインデータウェアハウス内の異なる顧客アカウント間でデータを共有するために使用され得る技術を提供する。一実施形態では、データ共有は、データをコピーする必要なく、制御された瞬時の仕方で、ある顧客アカウントでのユーザが別の顧客アカウント内のデータにアクセスすることを可能にするクロスアカウントロール権限を使用して可能である。例えば、外来アカウントが該アカウント上のクエリ又はその他の処理をそれらの権利(例えば、読み出し、書き込み等)内で実施することを可能にしつつ、共有データは共有アカウント内に残存し得る。
本明細書に開示される実施形態は、様々なアプリケーションに対して使用され得る。一実施形態では、データベースの所有者は、チュートリアル及び/又は紹介のための新たな顧客アカウントでサンプルデータセットを共有し得る。一実施形態では、デモデータセットは、あるアカウントから、データウェアハウス又はその他のサービスを潜在的な顧客にデモするためのデモアカウントで共有され得る。一実施形態では、データベースプロバイダ又はホストにより収集された使用データは、顧客アカウントで容易に共有され得る。一実施形態では、顧客アカウントがそれら自体にデータを取り込まなくてもよいように、公表されているデータセットは、中心的なアカウントから顧客アカウントで共有し得る。一実施形態では、顧客は、データを物理的にコピー又は送信する必要なく、共有リソースへのより容易なアクセスのためにその他の顧客とデータを共有することが可能である。一実施形態では、顧客は、サポート問題の調査のために、管理者とデータを容易に共有することが可能である。一実施形態に従えば、顧客又はその他のアカウント保有者/所有者は、彼らのデータについての情報を、購入/寄付のためのマーケットプレイス上にリスト化し得る。例えば、幾つかの実施形態は、マルチテナントデータベース又はデータウェアハウスの顧客アカウント間でデータセットを購買及び販売するためのマーケットプレイスを提供する。
本開示の実施形態と一致するシステム及び方法の詳細な説明を以下に提供する。幾つかの実施形態が説明されるが、この開示は何れか1つの実施形態に限定されないが、代わりに、多数の代替物、変更物、及び均等物を包含することを理解すべきである。また、本明細書に開示される実施形態の完全な理解を提供するために、多くの具体的詳細が後続の説明に記載されるが、幾つかの実施形態は、これらの詳細の幾つか又は全てなしに実践され得る。更に、明確にする目的のために、関連技術で周知のある技術項目は、開示を不必要に不明確にするのをさけるために詳細には説明されていない。
図2は、データベースのデータ又はサービスを提供及びアクセスするためのシステム200の概略図である。システム200は、データベースシステム202、1つ以上のサーバ204、及びクライアントコンピューティングシステム206を含む。データベースシステム202、1つ以上のサーバ204、及び/又はクライアントコンピューティングシステム206は、インターネット等のネットワーク208を越えて相互に通信し得る。例えば、1つ以上のサーバ204及び/又はクライアントコンピューティングシステム206は、データベースに問い合わせ、及び/又はデータベースからデータを受信するために、ネットワーク208を越えてデータベースシステム202にアクセスし得る。データベースからのデータは、任意のタイプのコンピューティングアプリケーションのための1つ以上のサーバ204又はクライアントコンピューティングシステム206により使用され得る。一実施形態では、データベースシステム202は、複数の異なるアカウントに対するデータをホストするマルチテナントデータベースシステムである。
データベースシステム202は、共有コンポーネント210及びストレージ212を含む。ストレージ212は、データを格納するためのストレージ媒体を含み得る。例えば、ストレージ212は、データベースのテーブル、スキーマ、暗号化キー、データファイル
、又は任意のその他のデータを格納するための1つ以上のストレージデバイスを含み得る。共有コンポーネント210は、データ又はサービスのクロスアカウントな共有を可能にするためのハードウェア及び/又はソフトウェアを含み得る。例えば、共有コンポーネント210は、共有データにアクセスする又はデータを共有するために、リモートデバイスから受信されたクエリ/命令を処理し得る。クエリ/命令は、サーバ204又はクライアントコンピューティングシステム106から受信されてもよい。一実施形態では、共有コンポーネント210は、共有アカウントの外でテーブル又はデータ等の複製物を創出することなく、アカウント間でデータを共有することを可能にするように構成される。例えば、共有コンポーネントは、外来アカウントにより提供された任意のクエリ又は命令を実施するために、共有アカウントに割り当てられたコンピュータリソースを可能にし得る。
一実施形態では、データベースシステム100のためのストレージリソース及びコンピュートリソースは、論理的に及び/又は物理的に分離され得る。一実施形態では、ストレージは、全てのアカウントに渡って共通の共有リソースである。コンピュートリソースは、仮想ウェアハウスとして、アカウント毎に独立してセットアップされ得る。一実施形態では、仮想ウェアハウスは、ストレージレイヤ内のデータにアクセスし、クエリの結果を計算するコンピュートノードのセットである。コンピュートノード又はリソースをストレージから分離することは、各レイヤを独立してスケーリングすることを可能にする。ストレージとコンピュートとの分離はまた、他のアカウントでの計算に影響を与える、あるアカウントでの計算なしに、共有データが異なるアカウントによって独立に処理され得ることを可能にする。すなわち、少なくとも幾つかの実施形態では、共有データ上でクエリを実行する場合に、コンピューティングリソース間に何ら競合がない。
図3は、ストレージリソースとコンピューティングリソースとの分離を説明するマルチテナントデータベース300の概略的ブロック図である。例えば、マルチテナントデータベース300は、複数の異なるアカウント(A1、A2、A3、〜An)がホストされるデータウェアハウスであり得る。図3では、アカウントA1は、実行中の3つの仮想ウェアハウスを有し、アカウントA2は、実行中の1つの仮想ウェアハウスを有し、アカウントA3は、実行中の仮想ウェアハウスを何ら有しない。一実施形態では、3つの仮想ウェアハウスの全ては、仮想ウェアハウスのコンピュートノードから分離されたストレージレイヤへのアクセスを有する。一実施形態では、仮想ウェアハウスは、アカウントに対する現在のワークロードに基づいて、動的にプロビジョニング又は除去され得る。
一実施形態では、データベースシステム300は、アカウント内のオブジェクト階層を使用する。例えば、各顧客アカウントはオブジェクト階層を含み得る。オブジェクト階層は、データベース内でしばしばルーティングされる。例えば、データベースは、スキーマを含み、スキーマは、続いて、テーブル、ビュー、シーケンス、ファイルフォーマット、及びファンクション等のオブジェクトを含み得る。これらのオブジェクトの各々は特定の目的に適い、テーブルは、リレーショナルデータ又は半構造化データを格納し、ビューは、格納されたデータに渡る論理的抽象化を定義し、シーケンスは、増加し続ける数を生成する手段を提供し、ファイルフォーマットは、摂取されたデータファイルをパースするための方法を定義し、ファンクションは、ユーザ定義の実行プロシージャを保持する。
図4は、顧客アカウント内のオブジェクト階層を説明する概略的ブロック図である。具体的には、アカウントは、データベース内で参照され得るオブジェクトの階層を含み得る。例えば、顧客アカウントA1は、2つのデータベースオブジェクトD1及びD2を含む。データベースオブジェクトD1は、スキーマオブジェクトS1を含み、スキーマオブジェクトS1は、続いて、テーブルオブジェクトT1及びビューオブジェクトV1を含む。データベースオブジェクトD2は、スキーマオブジェクトS2を含み、スキーマオブジェクトS2は、ファンクションオブジェクトF2、シーケンスオブジェクトQ2、及びテー
ブルオブジェクトT2を含む。顧客アカウントA2は、スキーマオブジェクトS3及びテーブルオブジェクトT3を有するデータベースオブジェクトD3を含む。オブジェクト階層は、アカウント又はデータベースシステムのオブジェクト、データ、ファンクション、又はその他の情報若しくはサービスがどのようにアクセス又は参照されるかを制御し得る。
一実施形態では、データベースシステムは、顧客アカウント内のオブジェクトへのアクセスを支配するためのロールベースのアクセス制御を実装する。一般的に、ロールベースのアクセス制御は、2つの基本原理、ロール及び権限(grant)を含む。一実施形態では
、ロールは、ユーザに割り当てられた顧客アカウント内の特定のオブジェクトである。ロールとデータベースオブジェクト間の権限は、これらのオブジェクト上にロールが如何なる特権を有するかを定義する。例えば、データベースについての使用権限を有するロールは、コマンド“show databases”を実行する場合にこのデータベースを“閲覧”し得、テーブルについての選択権限を有するロールは、このテーブルから読み出し得るが、テーブルに書き込み得ない。ロールは、テーブルに書き込むことができるようにテーブルについての変更権限を有する必要があるであろう。
図5は、顧客アカウント内のオブジェクトへのロールベースのアクセスを説明する概略的ブロック図である。顧客アカウントA1はロールR1を含み、ロールR1は、オブジェクト階層内の全てのオブジェクトへの権限を有する。これらの権限がR1とD1、D2、S1、S2との間の使用権限と、R1とT1、V1、F2、Q2、T2との間の選択権限とであると仮定すると、アクティブにされたロールR1を有するユーザは、全てのオブジェクトを閲覧し得、全てのテーブル、ビュー、及びシーケンスからデータを読み出し得、アカウントA1内のファンクションF2を実行し得る。顧客アカウントA2はロールR3を含み、ロールR3は、オブジェクト階層内の全てのオブジェクトへの権限を有する。これらの権限がR3とD3、S3との間の使用権限と、R3とT3との間の選択権限である仮定すると、アクティブにされたR3を有するユーザは、全てのオブジェクトを閲覧し得、アカウントA2内の全てのテーブル、ビュー、及びシーケンスからデータを読み出し得る。
図6は、ロール間の使用権限を説明する。ロールベースのアクセス制御を用いて、あるロールから別のロールへの使用を権限付与することもできる。別のロールへの使用権限を有するロールは、該別のロールの全てのアクセス特権を“継承”する。例えば、ロールR2では、ロールR1についての使用権限を有する。ロールR2は全ての権限をR1から承継するので、アクティブにされたロールR2を有する(例えば、対応する認証の細目を有する)ユーザは、全てのオブジェクトを閲覧し、該オブジェクトから読み出し得る。
一実施形態に従えば、使用権限は、異なるアカウントに渡って権限付与される。データを共有するアカウントは、“共有者アカウント”と本明細書では称され得、データが共有されるアカウントは、“対象アカウント”と本明細書では称され得る。一実施形態では、本明細書に開示される実施形態は、データの瞬時でゼロコピーの容易に制御可能なクロスアカウントの共有を可能にする。一実施形態では、別のアカウントを有するデータを共有するために、共有者アカウントは、共有オブジェクトを生成し得る。共有オブジェクト内で、ロールが創出され得、共有者アカウントのユーザは、アクセス権又は権限がロール、及び/又は該ロールの下で権利が権限付与されるであろう外来(又は対象アカウント)を入手可能であることを指し示し得る。対象アカウントは、対象アカウントが権利又はアクセスを権限付与されている他のアカウント内の共有オブジェクト又はロールをその後識別し得る。一実施形態では、共有者アカウント内の共有オブジェクトは、エイリアスオブジェクト及びクロスアカウントのロール権限を使用して、対象アカウントにインポートされ得る。
一実施形態では、データ共有は、共有されるデータを所有するアカウントによって開始される。例えば、共有者アカウントは、新たなタイプのオブジェクト、共有オブジェクトを創出する。共有オブジェクトは、共有者アカウント内で識別されるユニークなネームを有する。例えば、ネームは、複数のアカウントに渡る必要はないが、1つのアカウント内でユニークである必要があり得る。共有オブジェクトは、共有者アカウント内のそれらのネームを介してそれらを参照することによって、創出、変更、及び削除され得る。
一実施形態では、各共有オブジェクトは単一のロールを含む。このロールとオブジェクトとの間の権限は、如何なるオブジェクトが共有されているかと、これらのオブジェクトが如何なる特権で共有されるかとを定義する。ロール及び権限は、ロールベースのアクセス制御の実装において、任意のその他のロール及び権限システムと同様であり得る。共有オブジェクト内のロールに付着した権限のセットを変更することによって、(ロールに権限を付加することにより)より多くのオブジェクトが共有され得、(ロールから権限を取り消すことにより)より少ないオブジェクトが共有され得、又は(例えば、以前に読み出しのみなされた共有テーブルオブジェクトへの書き込みアクセスを可能にするために、権限のタイプを変更することにより)異なる特権でオブジェクトが共有され得る。
一実施形態では、共有オブジェクトはまた、他の顧客アカウントへの参照のリストを含む。特に共有オブジェクトにあるこれらのアカウントのみがこの共有オブジェクトからルックアップ、アクセス、及び/又はインポートすることを可能にし得る。他の顧客アカウントの参照のリストを変更することによって、共有オブジェクトは、より多くのアカウントにアクセス可能にし得、又はより少ないアカウントに制限し得る。
図7は、共有オブジェクトSH1を説明する概略的ブロック図である。顧客アカウントA1は共有オブジェクトSH1を含む。共有オブジェクトSH1は、顧客アカウントA1内にユニークなネーム“SH1”を有する。共有オブジェクトSH1は、データベースD2、スキーマS2、及びテーブルT2への権限を有するロールR4を含む。データベースD2及びスキーマS2についての権限は使用権限であり得、テーブルT2についての権限は選択権限であり得る。この場合、データベースD2内のスキーマS2内のテーブルT2は、読み出しのみが共有されるであろう。共有オブジェクトSH1は、アカウントA2を含むその他の顧客アカウントへの参照のリストを含む。
共有オブジェクトが創出された後、共有オブジェクトは、共有オブジェクト内でリスト化された対象アカウントによってインポート又は参照され得る。例えば、共有者アカウントから共有オブジェクトをインポートすることは、他の顧客アカウントから可能である。対象アカウントは、インポートするために全ての入手可能な共有オブジェクトをリスト化するためのコマンドを実行し得る。対象アカウントが含まれる参照を用いて共有オブジェクトが創出された場合にのみ、対象アカウントは共有オブジェクトをリスト化し得、続いてそれをインポートし得る。一実施形態では、別のアカウント内の共有オブジェクトへの参照は、常にアカウント名によって適格化される。例えば、対象アカウントA2は、例示的な適格化名“A1.SH1”を用いて共有者アカウントA1内の共有SH1を参照するであろう。
一実施形態では、プロセス、又は共有オブジェクトをインポートすることは、対象アカウント内にエイリアスオブジェクトを創出することと、エイリアスオブジェクトを、オブジェクト階層内の、共有者アカウント内の最上の共有オブジェクトとリンクすることと、対象アカウント内のロールの使用特権をエイリアスオブジェクトに権限付与することと、対象アカウントのロールの使用特権を、共有オブジェクトに含まれるロールに権限付与することとを含み得る。
一実施形態では、共有オブジェクト又はデータをインポートする対象アカウントはエイリアスオブジェクトを創出する。エイリアスオブジェクトは、顧客アカウント内の通常オブジェクトと類似する。エイリアスオブジェクトは、それが識別されるそれ自体のユニークなネームを有する。エイリアスオブジェクトは、共有される各オブジェクト階層内の最上のオブジェクトにリンクされ得る。複数のオブジェクト階層が共有される場合、複数のエイリアスオブジェクトが対象アカウント内に創出され得る。エイリアスオブジェクトが使用される(例えば、エイリアスオブジェクトからの読み出し、エイリアスオブジェクトへの書き込み)場合には常に、エイリアスオブジェクトは、それがリンクされる共有者アカウント内の通常オブジェクトによって内部で置換される。この方法では、エイリアスオブジェクトは、通常オブジェクトのプロキシオブジェクトにすぎず、複製オブジェクトではない。したがって、エイリアスオブジェクトに対して読み出す又は書き込む場合、該動作は、エイリアスがリンクするオリジナルオブジェクトに影響を与える。類似又は通常のオブジェクトは、エイリアスオブジェクトが創出される場合に、ユーザのアクティブにされたロールに権限付与される。
エイリアスオブジェクトに加えて、対象アカウント内のロールと共有オブジェクトに含まれるロールとの間の権限が創出される。これは、複数の顧客アカウントに渡るロールからロールへの使用権限である。ロールベースのアクセス制御は、対象アカウントでのユーザが共有者アカウント内のオブジェクトにアクセスすることを可能にする。
図8は、異なるアカウント間の論理的な権限とリンクを説明する概略的ブロック図である。データベースのエイリアスオブジェクトD5はアカウントA2内で創出される。データベースのエイリアスD5は、リンクL1を介してデータベースD2を参照する。ロールR3は、データベースD5についての使用権限G1を有する。ロールR3は、顧客アカウントA1内のロールR4への第2の使用権限G2を有する。権限G2は、アカウントA1とA2との間のクロスアカウント権限である。一実施形態では、ロールベースのアクセス制御は、アクティブにされたロールR3を有するアカウントA2でのユーザがアカウントA1内のデータにアクセスすることを可能にする。例えば、アカウントA2でのユーザがテーブルT2内のデータを読み出すことを欲した場合、ロールR3がロールR4の使用権限を有し、ロールR4が続いてテーブルT2についての選択権限を有するので、ロールベースのアクセス制御はそれを可能にする。例証として、アクティブにされたロールR3を有するユーザは、“D5.S2.T2”に向けられたクエリ又は選択を実行することによってT2にアクセスし得る。
対象アカウント内のロールから共有者アカウント内のロールへのオブジェクトエイリアス及びクロスアカウント権限を使用することは、対象アカウントでのユーザが共有者アカウント内の情報にアクセスすることを可能にする。この方法では、データベースシステムは、異なる顧客アカウント間でのデータベースの共有を瞬時でゼロコピーの容易に制御可能な仕方で可能にし得る。エイリアスオブジェクト及びクロスアカウント権限は、数ミリ秒で創出され得るので、共有は瞬時であり得る。プロセス中にデータが何ら複製されないので、共有はゼロコピーであり得る。例えば、全てのクエリ又は選択は、対象アカウント内に複製を創出することなく、共有者アカウント内の共有オブジェクトに直接なされ得る。共有はまた、ロールベースのアクセス制御の使用しやすい技術を利用するので、制御が容易である。また、別個なストレージとコンピュートとを有する実施形態では、共有データについてのクエリを実行する場合に、コンピューティングリソース間に何ら競合がない。したがって、異なる顧客アカウント内の異なる仮想ウェアハウスは、共有データを独立して処理し得る。例えば、第1のアカウントに対する第1の仮想ウェアハウスは、共有者アカウントにより共有されたデータを使用して、データベースのクエリ又はステートメントを処理し得、第2のアカウント又は共有者アカウントに対する第2の仮想ウェアハウス
は、共有者アカウントの共有データを使用して、データベースのクエリ又はステートメントを処理し得る。
図9は、共有コンポーネント210の概略的ブロック図である。共有コンポーネント210は、クロスアカウント権コンポーネント902、エイリアスコンポーネント904、リクエストコンポーネント906、アクセスコンポーネント908、及び処理コンポーネント910を含む。コンポーネント902〜910は、例示としてのみ与えられ、全ての実施形態に含まれるとは限られない。例えば、コンポーネント902〜910の各々は、別個のデバイス又はシステムに含まれ得、若しくは別個のデバイス又はシステムの一部として実装され得る。
クロスアカウント権コンポーネント902は、アカウント間の権利又は権限を創出及び管理するように構成される。クロスアカウント権コンポーネント902は、共有者アカウント内に共有オブジェクトを生成し得る。例えば、共有者アカウントのユーザは、1つ以上のリソースが別のアカウントで共有されるべきであることを指し示す入力を提供し得る。一実施形態では、ユーザは、リソースが外来アカウントで共有され得るように、新たな共有オブジェクトを創出するためのオプションを選択し得る。ユーザの入力に応答して、クロスアカウント権コンポーネント902は、共有者アカウント内に共有オブジェクトを創出し得る。共有オブジェクトは、外来アカウントで共有するためのリソースにアクセス権が権限付与され得るロールを含み得る。外来アカウントは、共有者アカウントとは別個の顧客アカウント又はその他のアカウントを含み得る。例えば、外来アカウントは、マルチテナントデータベースシステム上にホストされた別のアカウントであり得る。
創出されると、共有オブジェクトは、共有者アカウント内の1つ以上のリソースへの権利が権限付与され得る。リソースは、共有者アカウントのデータベース、スキーマ、テーブル、シーケンス、又はファンクションを含み得る。例えば、共有オブジェクトは、データベース等のデータ格納オブジェクトを読み出し、選択し、問い合わせ、又は変更するための権利が権限付与されたロール(すなわち、共有ロール)を含み得る。共有オブジェクト、又は共有オブジェクト内の共有ロールは、ロールベースのアクセス制御を使用して、他のロールに権利が権限付与され得る方法と同様の権利が権限付与され得る。ユーザは、外来アカウントで共有することを意図するリソースに共有ロールがアクセスし得るように、アカウントにアクセスすること、及び共有ロールへの権利を権限付与することが可能であり得る。一実施形態では、共有オブジェクトは、共有ロールが権利を有するオブジェクトのリストとアクセスレベルとを含み得る。
共有オブジェクトはまた、特定の外来アカウントに入手可能に又はリンクさせられ得る。例えば、共有オブジェクトは、共有者アカウント内の共有ロール又は共有オブジェクトへの権利を有するアカウントのリストを格納し得る。共有者アカウントを有するユーザは、アカウントのリストに対してアカウントを追加又は除去し得る。例えば、ユーザは、共有オブジェクトを介して共有されるオブジェクトに如何なるアカウントがアクセスし得るかを制御するためにリストを変更することが可能であり得る。共有オブジェクト内でリスト化又は識別される外来アカウントは、共有オブジェクトの共有ロールに権限付与されたアクセス権を用いて、リソースへのアクセスが与えられ得る。一実施形態では、特定のアカウントは、該特定のアカウントで共有されている共有オブジェクト又は共有者アカウントを識別するための検索を実施し得る。入手可能な共有オブジェクトのリストは、対象の又は特定のアカウントのユーザによって見分され得る。
エイリアスコンポーネント904は、別個のアカウントにより共有されるデータ又はデータオブジェクトに対するエイリアスを生成するように構成される。例えば、エイリアスオブジェクトは、共有者アカウントにより共有される共有リソースに対応するエイリアス
オブジェクトを対象アカウント内に創出し得る。一実施形態では、対象アカウントが第1の時間の間に共有リソースを受け取ること、又は共有リソースへのアクセスを試行することに応答してエイリアスオブジェクトは創出される。エイリアスオブジェクトは、共有者アカウントにより共有される最高位のオブジェクト階層に対するデータオブジェクトに対するエイリアスとしての機能を果たし得る(例えば、D5がD2に対するエイリアスである図8を参照)。エイリアスコンポーネント904はまた、エイリアスオブジェクトと共有オブジェクトとの間のリンクを生成し得る(例えば、L1がD5とD2との間のリンクである図8を参照)。リンクは、オリジナル又は“実”オブジェクトの識別子又はネームの形式で創出及び/又は格納され得る。例えば、図8のリンクL1は、“A1.D2”等のユニークなシステム全体のネームを含むエイリアスオブジェクトD5内に格納されたD2に対する識別子を含み得る。
エイリアスコンポーネント904はまた、対象アカウント(共有者アカウントが共有データ又はリソースを有するアカウント)内のロールのアクセス権をエイリアスオブジェクトに権限付与し得る(例えば、図8のG1を参照)。また、エイリアスコンポーネント904はまた、共有者アカウントの共有オブジェクト内の共有ロールに対象アカウント内のロールを権限付与し得る(例えば、図8のG2を参照)。創出されたエイリアスオブジェクトと、エイリアスオブジェクトと共有者アカウント内のオブジェクトとの間のリンクと、対象アカウント内のロールへの権限とを用いて、対象アカウントは、自由に、共有者アカウント内のクエリ、ステートメントを実行し得、又は共有データ若しくはリソースを“閲覧”し得る。
リクエストコンポーネント906は、異なるアカウント内の共有リソースにアクセスするためのリクエストをアカウントから受信するように構成される。リクエストは、リソースにアクセスするためのデータベース、クエリ、又は選択ステートメント等を含み得る。一実施形態では、該リクエストは、リクエストしているアカウントのエイリアスオブジェクトに向けられたリクエストを含む。リクエストコンポーネント906は、共有者アカウント内のデータベース又はテーブル等の、エイリアスオブジェクトがリンクされたリソースを識別し得る。リクエストコンポーネント906は、エイリアスオブジェクトの識別子に基づいて、リンクされたオブジェクトを識別し得る。
アクセスコンポーネント908は、異なるアカウントの共有リソースへのアクセスをアカウントが有するか否かを判定するように構成される。例えば、第1のアカウントが異なる第2のアカウントのリソースへのアクセスをリクエストした場合、アクセスコンポーネント908は、第2のアカウントが第1のアカウントにアクセスを権限付与しているか否かを判定し得る。アクセスコンポーネント908は、リクエストしているアカウントを共有オブジェクトが識別したか否かを判定することによって、リクエストしているアカウントがアクセスを有するか否かを判定し得る。例えば、アクセスコンポーネント908は、共有オブジェクトにより格納されたアカウントのリスト内に、リクエストしているアカウントが存在するか否かを確認し得る。アクセスコンポーネント908はまた、リクエストしているアカウントを識別する共有オブジェクトが共有者アカウント内の対象データリソースへのアクセス権(例えば、権限)を有するか否かを確認し得る。
一実施形態では、アクセスコンポーネント908は、共有者アカウント内の共有ロールから、リクエストしているアカウント内のリクエストしているロールへの権限の存在を確認し得る。アクセスコンポーネント908は、データベースのリクエスト若しくはステートメントが向けられたエイリアスオブジェクト間にリンクが存在するか否か、又はリクエストしているロールとエイリアスオブジェクトとの間に権限が存在するか否かを確認し得る。例えば、アクセスコンポーネント908は、図8に説明されるL1、G1、及びG2の内の1つ以上の実在又は存在を確認し得る。更に、アクセスコンポーネント908は、
共有オブジェクト内のロールと共有者アカウントのオブジェクト(テーブル又はデータベース等)との間の権限を確認し得る。例えば、アクセスコンポーネント908は、図8のロールR4とデータベースD2との間の権限の存在を確認し得る。リクエストしているアカウントが共有リソースへのアクセスを有するとアクセスコンポーネント908が判定した場合、共有コンポーネント210又は処理コンポーネント910によってリクエストは遂行され得る。リクエストしているアカウントが、リクエストされたデータ又はオブジェクトへの権利を有しないとアクセスコンポーネント908が判定した場合、リクエストは拒否されるであろう。
処理コンポーネント910は、データベースのリクエスト、クエリ、又はステートメントを処理するように構成される。処理コンポーネント910は、別のアカウント内のデータ又はサービスにアクセス又は使用するための、アカウントからのリクエストへの応答を処理及び提供し得る。一実施形態では、処理コンポーネント910は、リクエストしているアカウントとは異なる共有者アカウント内のオリジナルデータを使用してリクエストを処理することによって、リクエストへの応答を提供する。例えば、リクエストは、第1のアカウント内に格納された又は第1のアカウントに対するデータベース又はテーブルに向けられ得、処理コンポーネント910は、第1のアカウントのデータベース又はテーブルを使用してリクエストを処理し得、リクエストしている第2のアカウントに応答を返し得る。
一実施形態では、処理コンポーネント910は、リクエストしているアカウント内に複製のテーブル又はその他のデータソースを創出することなく、共有データの処理を実施する。一般的に、データは、該データを処理すること又は該データに対する動作を実施することを望むアカウントにまず取り込まれなければならない。処理コンポーネント910は、対象アカウント内にデータリソースのコピーを創出することなく、共有者アカウント内の共有リソースに対象アカウントがアクセスすることを可能にすることによって、処理時間、遅延、及び/又はメモリリソースを抑制し得る。
処理コンポーネント910は、異なるアカウントに対する異なる処理リソースを使用して、同じデータの処理を実施し得る。例えば、第1のアカウントに対する第1の仮想ウェアハウスは、共有者アカウントにより共有されるデータを使用して、データベースのクエリ又はステートメントを処理し得、第2のアカウント又は共有者アカウントに対する第2の仮想ウェアハウスは、共有者アカウントの共有データを使用して、データベースのクエリ又はステートメントを処理し得る。同じデータを処理するために別個の処理リソースを使用することは、アカウント間の処理リソースの競合を防止し得る。処理リソースは、動的にプロビジョニングされる処理リソースを含み得る。一実施形態では、共有データの処理は、異なるアカウントに対するストレージにデータが配置され得るとしても、リクエストしているアカウントに対する仮想ウェアハウスを使用して実施される。
図10は、データベースのデータ又はリソースを共有するための例示的方法1000を説明する概略的フローチャート図である。方法1000は、図1又は図9のような共有コンポーネント210によって、又は図1、図2、若しくは図3のようなデータベースシステムによって等、データベースシステムにより実施され得る。
方法1000が開始し、クロスアカウント権コンポーネント902は、1002において、共有ロールを含む第1のアカウント内に共有オブジェクトを生成する。クロスアカウント権コンポーネント902は、1004において、1つ以上のアクセス権を共有ロールと関連付け、ここで、1つ以上のアクセス権は、第1のアカウント内の如何なるオブジェクトが共有オブジェクトに基づいてアクセス可能であるかを指し示す。クロスアカウント権コンポーネント902は、1006において、第1のアカウント内の共有ロール又は共
有オブジェクトへのクロスアカウントアクセス権を第2のアカウントに権限付与する。リクエストコンポーネント906は、1008において、第1のアカウントのデータ又はサービスにアクセスするためのリクエストを第2のアカウントから受信する。処理コンポーネント910は、1010において、第1のアカウントのデータ又はサービスに基づいて、第2のアカウントに応答を提供する。
図11は、例示的コンピューティングデバイス1100を描写するブロック図である。幾つかの実施形態では、コンピューティングデバイス1100は、本明細書で論じられるシステム及びコンポーネントの内の1つ以上を実装するために使用される。更に、コンピューティングデバイス1100は、本明細書で説明されるシステム及びコンポーネントの内の何れかと相互作用し得る。したがって、コンピューティングデバイス1100は、本明細書で論じられるプロシージャ及びタスク等の、様々なプロシージャ及びタスクを実施するために使用され得る。コンピューティングデバイス1100は、サーバ、クライアント、又は任意のその他のコンピューティングエンティティとして機能し得る。コンピューティングデバイス1100は、デスクトップコンピュータ、ノートブックコンピュータ、サーバコンピュータ、携帯コンピュータ、及びタブレット等の幅広い様々なコンピューティングデバイスの内の何れかであり得る。
コンピューティングデバイス1100は、1つ以上のプロセッサ1102、1つ以上のメモリデバイス1104、1つ以上のインタフェース1106、1つ以上の大容量ストレージデバイス1108、及び1つ以上の入出力(I/O)デバイス1110を含み、それらの全てはバス1112に結合される。プロセッサ1102は、メモリデバイス1104及び/又は大容量ストレージデバイス1108に格納された命令を実行する1つ以上のプロセッサ又はコントローラを含む。プロセッサ1102はまた、キャッシュメモリ等の様々なタイプのコンピュータ可読媒体を含み得る。
メモリデバイス1104は、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM))及び/又は不揮発性メモリ(例えば、リードオンリーメモリ(ROM))等の様々なコンピュータ可読媒体を含む。メモリデバイス1104はまた、フラッシュメモリ等の再書き込み可能なROMを含み得る。
大容量ストレージデバイス1108は、磁気テープ、磁気ディスク、光ディスク、及び固体状態メモリ(例えば、フラッシュメモリ)等の様々なコンピュータ可読媒体を含む。様々なコンピュータ可読媒体に対する読み出し及び/又は書き込みを可能にするために、様々なドライブも大容量ストレージデバイス1108に含まれ得る。大容量ストレージデバイス1108は、取り外し可能な媒体及び/又は取り外し不可能な媒体を含む。
I/Oデバイス1110は、データ及び/又はその他の情報がコンピューティングデバイス1100に入力されること、又はコンピューティングデバイス1100から検索されることを可能にする様々なデバイスを含む。例示的なI/Oデバイス1100は、カーソル制御デバイス、キーボード、キーパッド、マイクロフォン、モニタ若しくはその他の表示デバイス、スピーカ、プリンタ、ネットワークインタフェースカード、モデム、レンズ、及びCCD若しくはその他の画像取得デバイス等を含む。
インタフェース1106は、コンピューティングデバイス1100がその他のシステム、デバイス、又はコンピューティング環境と相互作用することを可能にする様々なインタフェースを含む。例示的なインタフェース1106は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、無線ネットワーク、及びインターネットへのインタフェース等の任意の数の異なるネットワークインタフェースを含む。
バス1112は、プロセッサ1102、メモリデバイス1104、インタフェース1106、大容量ストレージデバイス1108、及びI/Oデバイス1110が、バス1112に結合されたその他のデバイス又はコンポーネントと共に相互に通信することを可能にする。バス1112は、システムバス、PCIバス、IEEE1394バス、及びUSBバス等の幾つかのタイプのバス構造の内の1つ以上を表す。
説明の目的で、プログラム及びその他の実行可能プログラムのコンポーネントが別々のブロックとして本明細書に示されているが、こうしたプログラム及びコンポーネントは、コンピューティングデバイス1100の異なるストレージコンポーネント内に様々な時間に存在し得、プロセッサ1102により実行される。或いは、本明細書で説明されるシステム及びプロシージャは、ハードウェア、又はハードウェア、ソフトウェア、及び/若しくはファームウェアの組み合わせで実装され得る。例えば、1つ以上の特定用途向け集積回路(ASIC)は、本明細書で説明されるシステム及びプロシージャの内の1つ以上を実行するようにプログラミングされ得る。本明細書で使用されるように、用語“モジュール”又は“コンポーネント”は、本明細書に開示される動作の全て又は一部を実施する目的で、ハードウェア、又はハードウェア、ソフトウェア、及び/若しくはファームウェアの組み合わせによる等、プロセスを達成するための実装装置を伝えることを意図する。
実施例
以下の例は更なる実施形態に関係する。
実施例1は、1つ以上のプロセッサにより実行される場合に、共有ロールを含む第1のアカウント内に共有オブジェクトをプロセッサに生成させる命令を格納するコンピュータ可読ストレージ媒体のための方法である。命令は、1つ以上のプロセッサに、1つ以上のアクセス権を共有ロールと関連付けさせ、ここで、1つ以上のアクセス権は、第1のアカウント内の如何なるオブジェクトが共有オブジェクトに基づいてアクセス可能であるかを指し示す。命令は、1つ以上のプロセッサに、第1のアカウント内の共有ロール又は共有オブジェクトへのクロスアカウントアクセス権を第2のアカウントに権限付与させる。命令は、1つ以上のプロセッサに、第1のアカウントのデータ又はサービスにアクセスするためのリクエストを第2のアカウントから受信させる。命令は、1つ以上のプロセッサに、第1のアカウントのデータ又はサービスに基づいて第2のアカウントに応答を提供させる。
実施例2では、実施例1の1つ以上のオブジェクトは、データベースオブジェクト、スキーマ、テーブル、シーケンス、又はファンクションの内の1つ以上を含む。
実施例3では、実施例1〜2の内の何れかの命令は更に、1つ以上のプロセッサに、共有ロールが権利を有するオブジェクトのリストを格納することによって、1つ以上のアクセス権を共有ロールと関連付けさせる。
実施例4では、実施例1〜3の内の何れかの命令は、1つ以上のプロセッサに、第1のアカウント内の共有ロール又は共有オブジェクトへの権利を有する、アカウントのリスト内の第2のアカウントの指標を格納することによって、1つ以上のアクセス権を権限付与させる。
実施例5では、実施例1〜4の内の何れかの命令は、1つ以上のプロセッサに、第2のアカウント内のエイリアスオブジェクトに向けられたリクエストを受信することによって、リクエストを受信させる。
実施例6では、実施例1〜5の内の何れかの命令は、1つ以上のプロセッサに、第2の
アカウントの仮想ウェアハウスを使用してリクエストを処理することによって、応答を提供させる。
実施例7では、実施例1〜6の内の何れかの命令は、1つ以上のプロセッサに、第2のアカウント内に複製のテーブル又はその他のデータソースを創出することなくリクエストを処理することによって応答を提供させる。
実施例8では、実施例1〜7の内の何れかの命令は更に、1つ以上のプロセッサに、第1のアカウントのリクエストされたデータ又はサービスへのアクセス権を第2のアカウントが有すると判定させる。
実施例9では、実施例8の命令は、1つ以上のプロセッサに、共有オブジェクト又は共有ロールから第1のアカウントへの権限が存在すると判定することによって、第2のアカウントがアクセス権を有すると判定させる。
実施例10では、実施例8〜9の内の何れかの命令は、1つ以上のプロセッサに、第2のアカウント内のエイリアスオブジェクトと第1のアカウントのデータ又はサービスとの間にリンクが存在すると判定することによって、第2のアカウントがアクセス権を有すると判定させる。
実施例11は、クロスアカウント権コンポーネント、エイリアスコンポーネント、及びアクセスコンポーネントを含むマルチテナントデータベースシステムである。クロスアカウント権コンポーネントは、1つ以上の共有リソースへのクロスアカウントアクセス権が共有者アカウントによって対象アカウントに権限付与されていると判定するように構成される。エイリアスコンポーネントは、共有者アカウント内の1つ以上の共有リソースの内の共有リソースに対応するエイリアスオブジェクトを対象アカウント内に創出するように構成される。アクセスコンポーネントは、エイリアスオブジェクトに向けられたリクエストを使用して対象アカウントが共有リソースにアクセスすることを可能にするように構成される。
実施例12では、実施例11のようなエイリアスコンポーネントは、対象アカウント内のエイリアスオブジェクトを共有者アカウント内の共有リソースにリンクするように構成される。
実施例13では、実施例11〜12の内の何れかのようなエイリアスコンポーネントは更に、エイリアスオブジェクトへのアクセス権を対象アカウント内のロールに権限付与するように構成される。
実施例14では、実施例11〜3の内の何れかのような1つ以上の共有リソースは、共有者アカウントのデータベースオブジェクト、スキーマ、テーブル、シーケンス、又はファンクションの内の1つ以上を含む。
実施例15では、実施例11〜14の内の何れかのようなクロスアカウント権コンポーネントは、共有者アカウント内の共有ロール又は共有オブジェクトへの権利を有するアカウントのリストに基づいてクロスアカウントアクセス権が権限付与されていると判定するように構成され、ここで、共有ロール又は共有オブジェクトは、1つ以上の共有リソースへの権利を有する。
実施例16では、実施例11〜15の内の何れかのアクセスコンポーネントは、共有者アカウント内の共有オブジェクト又は共有ロールから対象アカウントへの権限の存在に基
づいてクロスアカウントアクセス権が権限付与されていると判定することに応答して、対象アカウントが共有リソースにアクセスすることを可能にするように構成される。
実施例17では、実施例11〜15の内の何れかのアクセスコンポーネントは、対象アカウント内のエイリアスオブジェクトと共有者アカウントのデータ又はサービスとの間にリンクが存在することに基づいてクロスアカウントアクセス権が権限付与されていると判定することに応答して、対象アカウントが共有リソースにアクセスすることを可能にするように構成される。
実施例18では、実施例11〜16の内の何れかのようなシステムは更に、対象アカウント内にデータリソースのコピーを創出することなく、共有者アカウント内の共有リソースを処理するように構成された処理コンポーネントを含む。
実施例19では、実施例11〜16の内の何れかのようなシステムは更に、第2のアカウントの仮想ウェアハウスを使用して応答を提供するように構成された処理コンポーネントを含む。
実施例20では、実施例18〜18の内の何れかのような処理コンポーネントは、共有者アカウント内のオリジナルデータを使用してリクエストを処理することによってリクエストへの応答を提供するように構成される。
実施例21は、マルチテナントデータベース内の共有データへのアクセスを提供するための方法である。方法は、第1のアカウントが第1のアカウントのデータベースオブジェクトへのアクセスを第2のアカウントに権限付与していると判定することを含む。方法は、第1のアカウントに対応するデータオブジェクトにアクセスするためのリクエストを第2のアカウントから受信することを含む。方法は、第2のアカウントに対応する仮想ウェアハウスを使用してリクエストを処理することを含み、ここで、仮想ウェアハウスは、リクエストへの応答を生成するために、第1のアカウントに対応するストレージレイヤ内のデータにアクセスするように構成された1つ以上のコンピュートノードのセットを含む。
実施例22では、実施例21のように第1のアカウントが第2のアカウントにアクセスを権限付与していると判定することは、第2のアカウントが有する第1のアカウントのリストが第1のアカウント内の共有オブジェクト又は共有ロールへの権利を有していると判定することを含み、ここで、共有オブジェクト又は共有ロールは、第1のアカウントのデータベースオブジェクトへのアクセス権を有する。
実施例23では、実施例21〜22の内の何れかのようなリクエストを受信することは、第2のアカウント内のエイリアスオブジェクトに向けられたリクエストを受信することを含み、ここで、エイリアスオブジェクトは、データベースオブジェクトとリンクされる。
実施例24では、実施例21〜23の何れかのように応答を提供することは、第1のアカウントのデータオブジェクト内のデータを使用してリクエストを処理することを含む。
実施例25は、実施例1〜20の何れかのような方法を実施するための、又は装置又はシステムを実現するための手段を含む装置である。
実施例26は、実行される場合に、実施例11〜25の内の何れかの方法を実装するため、又は装置を実現するための機械可読命令を含む機械可読ストレージである。
様々な技術、又はそれらの幾つかの側面若しくは一部は、フロッピーディスク、CD−RM、ハードドライブ、非一時的コンピュータ可読ストレージ媒体、又は任意のその他の機械可読ストレージ媒体等の有形媒体に具体化されたプログラムコード(すなわち、命令)の形式を取り得、ここで、プログラムコードがコンピュータ等の機械にロードされ、該機械によって実行される場合に、該機械が様々な技術を実践するための装置になる。プログラム可能なコンピュータ上でプログラムコードを実行する場合、コンピューティングデバイスは、プロセッサ、プロセッサにより読み出し可能なストレージ媒体(揮発性及び不揮発性のメモリ、並びに/又はストレージ素子を含む)、少なくとも1つの入力デバイス、及び少なくとも1つの出力デバイスを含み得る。揮発性及び不揮発性のメモリ、並びに/又はストレージ素子は、RAM、EPROM、フラッシュドライブ、光ドライブ、磁気ハードドライブ、又は電子データを格納するための別の媒体であり得る。本明細書で説明される様々な技術を実装又は利用し得る1つ以上のプログラムは、アプリケーションプログラミングインタフェース(API)及び再使用可能な制御等を使用し得る。こうしたプログラムは、コンピュータシステムと通信するための高水準の手続き型若しくはオブジェクト指向のプログラミング言語で実装され得る。しかしながら、プログラムは、必要であれば、アセンブリ又は機械語で実装され得る。如何なる場合でも、言語は、コンパイルされた又はインタープリタされた言語であり得、ハードウェアの実装と組み合わせられ得る。
この明細書で説明される機能的ユニットの多くは、1つ以上のコンポーネントとして実装され得、それは、より具体的には、それらの実装の独立を強調するために使用される用語であると理解すべきである。例えば、コンポーネントは、特注の超大規模集積回路(VLSI)若しくはゲートアレイを含むハードウェア回路、ロジックチップ、トランジスタ等のオフザシェルフの半導体、又はその他の別々のコンポーネントとして実装され得る。コンポーネントはまた、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、又はプログラマブルロジックデバイス等のプログラム可能なハードウェアデバイスで実装され得る。
コンポーネントはまた、様々なタイプのプロセッサによる実行のためのソフトウェアで実装され得る。実行可能コードの識別されるコンポーネントは、実例として、コンピュータ命令の1つ以上の物理的な又は論理的なブロックを含み得、それらは、例えば、オブジェクト、プロシージャ、又はファンクションとして組織化され得る。にもかかわらず、識別される実行可能なコンポーネントは、物理的に一緒に配置される必要はないが、論理的に結合される場合には、コンポーネントを含み、コンポーネントに対する定められた目的を実現する異なる位置に格納された異なる命令を含み得る。
実際、実行可能コードのコンポーネントは、単一の命令又は多数の命令であってもよいが、異なるプログラム間で、幾つかのメモリデバイスに渡って、幾つかの異なるコードのセグメントに渡り分散され得る。同様に、動作可能なデータは、コンポーネント内に本明細書に識別及び説明され得、任意の適切な形式で具体化され得、任意の適切なタイプのデータ構造内に組織化され得る。動作可能なデータは、単一のデータセットとして収集され得、又は異なるストレージデバイスに渡ることを含む、異なる位置に渡って分散され得、少なくとも部分的には、単にシステム又はネットワーク上の電子信号として存在し得る。コンポーネントは受動的又は能動的であり得、所望の機能を実施するように動作可能なエージェントを含む。
この明細書全体を通じて“実施例(example)”への言及は、該実施例に関連して説明
される特定の機構、構造、又は特徴が本開示の少なくとも1つの実施形態に含まれることを意味する。したがって、この明細書全体を通じて様々な場所における句“実施例では”の出現は、必ずしも全てが同じ実施形態に言及していない。
本明細書で使用されるように、複数の項目、構造的要素、組成上の要素、及び/又は材料は、便宜上、共通のリストで提示され得る。しかしながら、これらのリストは、あたかも、リストの各メンバーが別個のユニークなメンバーとして個別に識別されるかのように解釈されるべきである。したがって、こうしたリストの個別のメンバーは、反対の表示なしに、共通のグループ内でのその提示のみに基づいて同じリストの何れかの他のメンバーの事実上の均等物として何ら解釈されるべきではない。また、本開示の様々な実施形態及び実施例は、それらの様々なコンポーネントに対する代替物と共に本明細書に言及され得る。こうした実施形態、実施例、及び代替物は、相互の事実上の均等物として解釈されるべきではないが、本開示の別個の自律的な表現としてみなされるべきであると理解される。
前述は、明確にする目的で若干詳細に説明されているが、その本質から逸脱することなく、幾つかの変形及び変更がなされ得ることは分かるであろう。本明細書で説明されるプロセス及び装置の両方を実装する多くの代替方法があることに留意すべきである。したがって、本実施形態は、例証であって限定的であるとみなされるべきではない。
開示の根底にある本質から逸脱することなく、上で説明した実施形態の詳細に多くの変形がなされ得ることを当業者は分かるであろう。本開示の範囲は、それ故、以下の請求項の範囲によってのみ決定されるべきである。

Claims (28)

  1. マルチテナントデータベース内の共有データへのアクセスを提供するためのシステムであって、
    第1のアカウントが前記第1のアカウントのデータベースオブジェクトへのアクセスを第2のアカウントに権限付与していると判定するための手段と、
    前記第1のアカウントに対応する前記データベースオブジェクトにアクセスするためのリクエストを前記第2のアカウントから受信するための手段と、
    前記第2のアカウントに対応する仮想ウェアハウスを使用して前記リクエストを処理するための手段であって、ここで、前記仮想ウェアハウスは、前記リクエストへの応答を生成するために、前記第1のアカウントに対応するストレージレイヤ内のデータにアクセスするように構成された1つ以上のコンピュートノードのセットを含む、前記手段と
    を含む、システム。
  2. 前記第1のアカウントが第2のアカウントにアクセスを権限付与していると判定するための前記手段は、前記第2のアカウントが有する前記第1のアカウントのリストが前記第1のアカウント内の共有オブジェクト又は共有ロールへの権利を有していると判定するための手段であって、ここで、前記共有オブジェクト又は共有ロールは、前記第1のアカウントの前記データベースオブジェクトへのアクセス権を有する、前記手段を含む、請求項1に記載のシステム。
  3. 前記リクエストを受信するための前記手段は、前記第2のアカウント内のエイリアスオブジェクトに向けられたリクエストを受信するための手段であって、ここで、前記エイリアスオブジェクトは前記データベースオブジェクトとリンクされる、前記手段を含む、請求項1に記載のシステム。
  4. 前記リクエストを処理するための前記手段は、前記第1のアカウントのデータオブジェクト内のデータを使用して前記リクエストを処理するための手段を含む、請求項1に記載のシステム。
  5. 1つ以上のプロセッサにより実行される場合に、
    共有ロールを含む第1のアカウント内に共有オブジェクトを生成することと、
    前記共有ロールと1つ以上のアクセス権を関連付けることであって、ここで、前記1つ以上のアクセス権は、前記第1のアカウント内の如何なるオブジェクトが前記共有オブジェクトに基づいてアクセス可能であるかを指し示すことと、
    前記第1のアカウント内の前記共有ロール又は共有オブジェクトへのクロスアカウントアクセス権を第2のアカウントに権限付与することと、
    前記クロスアカウントアクセス権が権限付与された前記第1のアカウントのデータ又はサービスにアクセスするためのリクエストを前記第2のアカウントから受信することと、
    前記第1のアカウントの前記データ又はサービスに基づいて前記第2のアカウントに応答を提供することと
    を前記1つ以上のプロセッサにさせる命令を格納するコンピュータ可読ストレージ媒体。
  6. 前記1つ以上のオブジェクトは、データベースオブジェクト、スキーマ、テーブル、シーケンス、又はファンクションの内の1つ以上を含む、請求項5に記載のコンピュータ可読媒体。
  7. 前記命令は、前記1つ以上のプロセッサに、前記共有ロールが権利を有するオブジェクトのリストを格納することによって、前記共有ロールと前記1つ以上のアクセス権を関連付けさせる、請求項5に記載のコンピュータ可読媒体。
  8. 前記命令は、前記1つ以上のプロセッサに、前記第1のアカウント内の前記共有ロール又は共有オブジェクトへの権利を有するアカウントのリスト内の前記第2のアカウントの指標を格納することによって、前記1つ以上のアクセス権を権限付与させる、請求項5に記載のコンピュータ可読媒体。
  9. 前記命令は、前記1つ以上のプロセッサに、前記第2のアカウント内のエイリアスオブジェクトに向けられたリクエストを受信することによって前記リクエストを受信させる、請求項5に記載のコンピュータ可読媒体。
  10. 前記命令は、前記1つ以上のプロセッサに、前記第2のアカウントの仮想ウェアハウスを使用して前記リクエストを処理することによって前記応答を提供させる、請求項5に記載のコンピュータ可読媒体。
  11. 前記命令は、前記1つ以上のプロセッサに、前記第2のアカウント内に複製のテーブル又はその他のデータソースを創出することなく前記リクエストを処理することによって、前記応答を提供させる、請求項5に記載のコンピュータ可読媒体。
  12. 前記命令は、前記1つ以上のプロセッサに、前記第1のアカウントのリクエストされた前記データ又はサービスへのアクセス権を前記第2のアカウントが有すると判定させる、請求項5に記載のコンピュータ可読媒体。
  13. 前記命令は、前記1つ以上のプロセッサに、前記共有オブジェクト又は共有ロールから前記第1のアカウントへの権限が存在すると判定することによって、前記第2のアカウントがアクセス権を有すると判定させる、請求項12に記載のコンピュータ可読媒体。
  14. 前記命令は、前記1つ以上のプロセッサに、前記第2のアカウント内のエイリアスオブジェクトと前記第1のアカウントの前記データ又はサービスとの間にリンクが存在すると判定することによって、前記第2のアカウントがアクセス権を有すると判定させる、請求項13に記載のコンピュータ可読媒体。
  15. マルチテナントデータベースシステムであって、
    1つ以上の共有リソースへのクロスアカウントアクセス権が共有者アカウントによって対象アカウントに権限付与されていると判定するように構成されたクロスアカウント権コンポーネントと、
    前記共有者アカウント内の前記1つ以上の共有リソースの内の共有リソースに対応するエイリアスオブジェクトを前記対象アカウント内に創出するように構成されたエイリアスコンポーネントと、
    前記エイリアスオブジェクトに向けられたリクエストを使用して、前記対象アカウントが前記共有リソースにアクセスすることを可能にするように構成されたアクセスコンポーネントと
    を含む、システム。
  16. 前記エイリアスコンポーネントは、前記共有者アカウント内の前記共有リソースに前記対象アカウント内の前記エイリアスオブジェクトをリンクするように構成される、請求項15に記載のシステム。
  17. 前記エイリアスコンポーネントは、前記エイリアスオブジェクトへのアクセス権を前記対象アカウント内のロールに権限付与するように更に構成される、請求項15に記載のシステム。
  18. 前記1つ以上の共有リソースは、前記共有者アカウントのデータベースオブジェクト、スキーマ、テーブル、シーケンス、又はファンクションの内の1つ以上を含む、請求項15に記載のシステム。
  19. 前記アクセスコンポーネントは、前記共有者アカウント内の共有ロール又は共有オブジェクトへの権利を有するアカウントのリストに基づいて、クロスアカウントアクセス権が権限付与されていると判定することに応答して、前記対象アカウントが前記共有リソースにアクセスすることを可能にするように構成され、ここで、前記共有ロール又は共有オブジェクトは、前記1つ以上の共有リソースへの権利を有する、請求項15に記載のシステム。
  20. 前記アクセスコンポーネントは、前記共有者アカウント内の共有オブジェクト又は共有ロールから前記対象アカウントへの権限の存在に基づいてクロスアカウントアクセス権が権限付与されていると判定することに応答して、前記対象アカウントが前記共有リソースにアクセスすることを可能にするように構成される、請求項15に記載のシステム。
  21. 前記アクセスコンポーネントは、前記対象アカウント内のエイリアスオブジェクトと前記共有者アカウントのデータ又はサービスとの間にリンクが存在することに基づいてクロスアカウントアクセス権が権限付与されていると判定するように構成される、請求項15に記載のシステム。
  22. 前記アクセスコンポーネントは、前記対象者アカウント内にデータリソースのコピーを創出することなく、前記対象アカウントが前記共有者アカウント内の前記共有リソースにアクセスすることを可能にする、請求項15に記載のシステム。
  23. 前記共有者アカウントの仮想ウェアハウスを使用して、前記リクエストへの応答を提供するように構成された処理コンポーネントを更に含む、請求項15に記載のシステム。
  24. 前記処理コンポーネントは、前記共有者アカウント内のオリジナルデータを使用して前記リクエストを処理することによってリクエストへの応答を提供するように構成される、請求項23に記載のシステム。
  25. マルチテナントデータベース内の共有データへのアクセスを提供するための方法であって、
    第1のアカウントが前記第1のアカウントのデータベースオブジェクトへのアクセスを第2のアカウントに権限付与していると判定することと、
    前記第1のアカウントに対応する前記データベースオブジェクトにアクセスするためのリクエストを前記第2のアカウントから受信することと、
    前記第2のアカウントに対応する仮想ウェアハウスを使用して前記リクエストを処理することであって、ここで、前記仮想ウェアハウスは、前記リクエストへの応答を生成するために、前記第1のアカウントに対応するストレージレイヤ内のデータにアクセスするように構成された1つ以上のコンピュートノードのセットを含むことと
    を含む、方法。
  26. 前記第1のアカウントが第2のアカウントにアクセスを権限付与していると判定することは、前記第2のアカウントが有する前記第1のアカウントのリストが前記第1のアカウント内の共有オブジェクト又は共有ロールへの権利を有していると判定することであって、ここで、前記共有オブジェクト又は共有ロールは、前記第1のアカウントの前記データベースオブジェクトへのアクセス権を有することを含む、請求項25に記載の方法。
  27. 前記リクエストを受信することは、前記第2のアカウント内のエイリアスオブジェクトに向けられたリクエストを受信することであって、ここで、前記エイリアスオブジェクトは前記データベースオブジェクトとリンクされることを含む、請求項25に記載の方法。
  28. 前記応答を提供することは、前記第1のアカウントのデータオブジェクト内のデータを使用して前記リクエストを処理することを含む、請求項25に記載の方法。
JP2019536902A 2017-01-10 2018-01-10 マルチテナントデータベースシステムにおけるデータ共有 Active JP6918120B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/402,906 US10592681B2 (en) 2017-01-10 2017-01-10 Data sharing in a multi-tenant database system
US15/402,906 2017-01-10
PCT/US2018/013176 WO2018132478A1 (en) 2017-01-10 2018-01-10 Data sharing in a multi-tenant database system

Publications (2)

Publication Number Publication Date
JP2020504395A JP2020504395A (ja) 2020-02-06
JP6918120B2 true JP6918120B2 (ja) 2021-08-11

Family

ID=62783605

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019536902A Active JP6918120B2 (ja) 2017-01-10 2018-01-10 マルチテナントデータベースシステムにおけるデータ共有

Country Status (9)

Country Link
US (13) US10592681B2 (ja)
EP (1) EP3568777B1 (ja)
JP (1) JP6918120B2 (ja)
KR (1) KR102332965B1 (ja)
CN (1) CN110192189B (ja)
AU (1) AU2018208613B9 (ja)
CA (1) CA3049654C (ja)
DE (3) DE202018006561U1 (ja)
WO (1) WO2018132478A1 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592681B2 (en) 2017-01-10 2020-03-17 Snowflake Inc. Data sharing in a multi-tenant database system
US11048815B2 (en) * 2018-08-06 2021-06-29 Snowflake Inc. Secure data sharing in a multi-tenant database system
US11238174B2 (en) * 2019-01-31 2022-02-01 Salesforce.Com, Inc. Systems and methods of database encryption in a multitenant database management system
WO2020191023A1 (en) * 2019-03-19 2020-09-24 Sigma Computing, Inc. Enabling editable tables on a cloud-based data warehouse
SG11202000784SA (en) * 2019-04-30 2020-02-27 Alibaba Group Holding Ltd Methods and devices for managing access to account in blockchain system
US20200379994A1 (en) * 2019-05-31 2020-12-03 Snowflake Inc. Sharing Materialized Views In Multiple Tenant Database Systems
US10977268B2 (en) 2019-05-31 2021-04-13 Snowflake Inc. Data exchange
US11113278B2 (en) * 2019-05-31 2021-09-07 Snowflake Inc. Data sharing and materialized views in multiple tenant database systems
US10798100B1 (en) 2019-09-12 2020-10-06 Snowflake Inc. Managing membership in a private data exchange
US11334604B2 (en) * 2019-09-12 2022-05-17 Snowflake Inc. Private data exchange
US11503037B2 (en) * 2019-11-04 2022-11-15 Microsoft Technology Licensing, Llc Nested access privilege check for multi-tenant organizations
US10867063B1 (en) * 2019-11-27 2020-12-15 Snowflake Inc. Dynamic shared data object masking
US11372995B2 (en) * 2020-01-17 2022-06-28 Snowflake Inc. Container-centric access control on database objects
US10999355B1 (en) * 2020-01-28 2021-05-04 Snowflake Inc. System and method for global data sharing
CN111597156B (zh) * 2020-05-13 2023-05-23 中国民航信息网络股份有限公司 民航数据处理方法、装置、电子设备及存储介质
US10949402B1 (en) * 2020-05-26 2021-03-16 Snowflake Inc. Share replication between remote deployments
US10997121B1 (en) * 2020-07-17 2021-05-04 Snowflake Inc. Attachable-and-detachable database sessions
US11397826B2 (en) 2020-10-29 2022-07-26 Snowflake Inc. Row-level security
US11818174B1 (en) 2020-11-25 2023-11-14 Amazon Technologies, Inc. Contextual policy weighting for permissions searching
US11777991B2 (en) 2020-11-30 2023-10-03 Amazon Technologies, Inc. Forecast-based permissions recommendations
CN112580104B (zh) * 2020-12-30 2024-03-19 北京达佳互联信息技术有限公司 权限管理方法、装置、电子设备及存储介质
US11799643B2 (en) 2021-01-19 2023-10-24 Bank Of America Corporation Collaborative architecture for secure data sharing
US11783325B1 (en) * 2021-03-26 2023-10-10 Amazon Technologies, Inc. Removal probability-based weighting for resource access
US11803621B1 (en) 2021-03-31 2023-10-31 Amazon Technologies, Inc. Permissions searching by scenario
US11138340B1 (en) * 2021-04-30 2021-10-05 Snowflake Inc. Multiple cloud and region data clean rooms
CN113486312B (zh) * 2021-05-08 2023-08-18 北京易成时代科技有限公司 一种基于模式的访问控制设计方法
CN113420306A (zh) * 2021-06-16 2021-09-21 深圳国泰安教育技术有限公司 资源共享方法、装置、计算设备及计算机可读存储介质
US11347886B1 (en) * 2021-06-30 2022-05-31 Snowflake Inc. Secure multi-party encrypted identifier data sharing
WO2023027879A1 (en) * 2021-08-26 2023-03-02 Snowflake Inc. Fine-grained access control via database roles
US11366920B1 (en) * 2021-08-26 2022-06-21 Snowflake Inc. Fine-grained access control via database roles
CN114091074A (zh) * 2021-11-25 2022-02-25 合芯科技(苏州)有限公司 数据共享方法、装置、计算机设备及存储介质
US20230412605A1 (en) * 2022-06-17 2023-12-21 Assurant, Inc. Dynamic computing resource set generation and access control
US11934543B1 (en) 2022-11-17 2024-03-19 Snowflake Inc. Transient object references
US11973748B1 (en) * 2023-10-30 2024-04-30 Snowflake Inc. Token-based secure database query result sharing

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732100B1 (en) 2000-03-31 2004-05-04 Siebel Systems, Inc. Database access method and system for user role defined access
US7783665B1 (en) * 2002-03-27 2010-08-24 Parallels Holdings, Ltd. Effective file-sharing among virtual environments
US7136873B2 (en) * 2002-07-20 2006-11-14 Microsoft Corporation Dynamic filtering in a database system
US7162469B2 (en) * 2002-07-20 2007-01-09 Microsoft Corporation Querying an object for properties
US7921299B1 (en) * 2003-12-05 2011-04-05 Microsoft Corporation Partner sandboxing in a shared multi-tenant billing system
US7546297B2 (en) * 2005-03-14 2009-06-09 Microsoft Corporation Storage application programming interface
US7689593B2 (en) * 2005-12-30 2010-03-30 Sap Ag Systems and methods for accessing a shared space in a provider-tenant environment
US7933925B2 (en) * 2006-06-01 2011-04-26 International Business Machines Corporation System and method for role based analysis and access control
US7827407B2 (en) * 2006-06-29 2010-11-02 Microsoft Corporation Scoped federations
US8577835B2 (en) 2007-06-28 2013-11-05 Salesforce.Com, Inc. Method and system for sharing data between subscribers of a multi-tenant database service
US9166954B2 (en) * 2008-02-29 2015-10-20 Adobe Systems Incorporated Document-authorized access to a shared workspace
US8478782B1 (en) * 2008-05-08 2013-07-02 Salesforce.Com, Inc. System, method and computer program product for sharing tenant information utilizing a multi-tenant on-demand database service
US8312013B1 (en) * 2008-05-08 2012-11-13 Salesforce.Com, Inc. On-demand service system, method and computer program product for linking a custom share row cause to a sharing record associated with a custom object
US20090282045A1 (en) * 2008-05-09 2009-11-12 Business Objects, S.A. Apparatus and method for accessing data in a multi-tenant database according to a trust hierarchy
JP5181139B2 (ja) * 2008-06-30 2013-04-10 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータプログラム、共有オブジェクト制御装置及び共有オブジェクト制御方法
CN101620609B (zh) * 2008-06-30 2012-03-21 国际商业机器公司 多租户数据存储和访问方法和装置
US8407205B2 (en) * 2008-09-11 2013-03-26 Salesforce.Com, Inc. Automating sharing data between users of a multi-tenant database service
US8805861B2 (en) * 2008-12-09 2014-08-12 Google Inc. Methods and systems to train models to extract and integrate information from data sources
WO2011056613A2 (en) * 2009-10-26 2011-05-12 Lionbridge Technologies, Inc. Methods and systems for providing anonymous and traceable external access to internal linguistic assets
US20130061035A1 (en) * 2010-03-09 2013-03-07 Lock Box Pty Ltd Method and system for sharing encrypted content
US8452726B2 (en) * 2010-06-04 2013-05-28 Salesforce.Com, Inc. Sharing information between tenants of a multi-tenant database
JP5807640B2 (ja) * 2010-09-22 2015-11-10 日本電気株式会社 アクセス権可否生成装置、アクセス権可否生成方法、プログラム、及び、アクセス制御システム
US8607146B2 (en) * 2010-09-30 2013-12-10 Google Inc. Composition of customized presentations associated with a social media application
US20130290707A1 (en) * 2011-02-07 2013-10-31 Carpadium Consulting Pty. Ltd. Information distribution system
US8869244B1 (en) * 2011-05-03 2014-10-21 Symantec Corporation Techniques for providing role-based access control using dynamic shared accounts
US20150149980A1 (en) * 2013-09-11 2015-05-28 Tongling Yucheng Software Technology Co., Ltd. Service model-oriented software operation platform and operation method thereof
US20130024910A1 (en) * 2011-07-22 2013-01-24 Salesforce.Com, Inc. Computer implemented methods and apparatus for integrating a social network information feed with a network communications application
US9495393B2 (en) * 2011-07-27 2016-11-15 EMC IP Holding Company, LLC System and method for reviewing role definitions
US9411671B1 (en) * 2012-04-17 2016-08-09 Facebook, Inc. Storage and privacy service
US20140280492A1 (en) 2013-03-15 2014-09-18 Grant Chieh-Hsiang Yang Method and System for Distributing Data among a Multi-Tenant service with a Shared Userbase
US9058494B2 (en) * 2013-03-15 2015-06-16 Intel Corporation Method, apparatus, system, and computer readable medium to provide secure operation
US9043458B2 (en) * 2013-03-19 2015-05-26 Cognizant Technology Solutions India Pvt. Ltd. Framework for facilitating implementation of multi-tenant SaaS architecture
US20190005261A1 (en) * 2013-04-01 2019-01-03 International Business Machines Corporation Secure shared vault with encrypted private indices
WO2015006307A1 (en) * 2013-07-09 2015-01-15 Contentraven, Inc. Systems and methods for trusted sharing
US9892177B2 (en) * 2013-07-11 2018-02-13 Salesforce.Com, Inc. Systems and methods for interacting with external content objects
US11163898B2 (en) * 2013-09-11 2021-11-02 Mimecast Services Ltd. Sharing artifacts in permission-protected archives
CN103607469B (zh) * 2013-11-28 2017-05-17 东莞中国科学院云计算产业技术创新与育成中心 一种实现分布式异构数据共享的云平台的数据共享方法
US10218703B2 (en) * 2014-01-20 2019-02-26 Hewlett-Packard Development Company, L.P. Determining a permission of a first tenant with respect to a second tenant
US9576039B2 (en) 2014-02-19 2017-02-21 Snowflake Computing Inc. Resource provisioning systems and methods
AU2015207842B2 (en) * 2014-07-29 2020-07-02 Samsung Electronics Co., Ltd. Method and apparatus for sharing data
US9723090B2 (en) * 2014-09-30 2017-08-01 Anthony Tan Digital certification analyzer temporary external secured storage system tools
US20160110555A1 (en) * 2014-10-21 2016-04-21 Institute For Information Industry Resource sharing apparatus, method, and non-transitory computer readable storage medium thereof
EP3040845A1 (en) * 2015-01-05 2016-07-06 Iguazio Systems Ltd. Service oriented data management and architecture
US10044723B1 (en) * 2015-06-30 2018-08-07 EMC IP Holding Company LLC Principal/user operation in the context of a tenant infrastructure
US9774586B1 (en) * 2015-08-31 2017-09-26 EMC IP Holding Company LLC Dynamic authorization of users in a multi-tenant environment using tenant authorization profiles
US10826844B2 (en) * 2015-09-30 2020-11-03 Amazon Technologies, Inc. Transmission of tags and policies with data objects
CN105610949B (zh) * 2015-12-30 2020-04-07 腾讯科技(深圳)有限公司 资源数据使用权限的共享方法、装置及系统
US10140434B2 (en) * 2016-05-03 2018-11-27 Microsoft Technology Licensing, Llc Group-based external sharing of electronic data
US10372934B2 (en) * 2016-07-21 2019-08-06 Salesforce.Com, Inc. Access controlled queries against user data in a datastore
US10474323B2 (en) * 2016-10-25 2019-11-12 Microsoft Technology Licensing Llc Organizational external sharing of electronic data
US10547621B2 (en) * 2016-11-28 2020-01-28 Microsift Technology Licensing, Llc Persistent mutable sharing of electronic content
US10592681B2 (en) * 2017-01-10 2020-03-17 Snowflake Inc. Data sharing in a multi-tenant database system
US11188670B2 (en) * 2019-03-28 2021-11-30 Snowflake Inc. Secure data joins in a multiple tenant database system
US11349848B2 (en) * 2020-06-30 2022-05-31 Microsoft Technology Licensing, Llc Experience for sharing computer resources and modifying access control rules using mentions

Also Published As

Publication number Publication date
US11288393B2 (en) 2022-03-29
AU2018208613B9 (en) 2020-11-26
EP3568777A1 (en) 2019-11-20
US11386220B2 (en) 2022-07-12
US20200394324A1 (en) 2020-12-17
CA3049654A1 (en) 2018-07-19
US20210019439A1 (en) 2021-01-21
US20220222365A1 (en) 2022-07-14
US20210303719A1 (en) 2021-09-30
US11763020B2 (en) 2023-09-19
CN110192189A (zh) 2019-08-30
US20220083682A1 (en) 2022-03-17
US11295030B2 (en) 2022-04-05
US20210103672A1 (en) 2021-04-08
DE202018006346U1 (de) 2020-02-03
US20180196955A1 (en) 2018-07-12
US11036879B2 (en) 2021-06-15
KR20190117517A (ko) 2019-10-16
DE202018006561U1 (de) 2021-02-10
US20210312070A1 (en) 2021-10-07
US20200257817A1 (en) 2020-08-13
WO2018132478A1 (en) 2018-07-19
US10878120B1 (en) 2020-12-29
US10592681B2 (en) 2020-03-17
US10817616B2 (en) 2020-10-27
US20200167497A1 (en) 2020-05-28
EP3568777B1 (en) 2022-09-14
CA3049654C (en) 2021-11-23
US20200394325A1 (en) 2020-12-17
JP2020504395A (ja) 2020-02-06
US20230334166A1 (en) 2023-10-19
US11727136B2 (en) 2023-08-15
KR102332965B1 (ko) 2021-11-29
US11048814B2 (en) 2021-06-29
US20220207169A1 (en) 2022-06-30
AU2018208613A1 (en) 2019-08-01
EP3568777A4 (en) 2020-07-22
US10642993B1 (en) 2020-05-05
US11210415B2 (en) 2021-12-28
US12013960B2 (en) 2024-06-18
AU2018208613B2 (en) 2020-07-02
DE202018006529U1 (de) 2021-01-14
CN110192189B (zh) 2023-11-14

Similar Documents

Publication Publication Date Title
JP6918120B2 (ja) マルチテナントデータベースシステムにおけるデータ共有
CN111684440A (zh) 多租户数据库系统中的安全数据共享
US11695559B2 (en) Nested tenancy that permits a hierarchy having a plurality of levels
US11809922B1 (en) Sharing events and other metrics in native applications
US20240193295A1 (en) Scalable Dataset Sharing With Linked Datasets
US20240062197A1 (en) Sharing events and other metrics in native applications
Brimhall et al. Securables, Permissions, and Auditing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191008

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201020

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210622

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210720

R150 Certificate of patent or registration of utility model

Ref document number: 6918120

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250