CN116158058A - 使用全局身份的远程执行 - Google Patents

使用全局身份的远程执行 Download PDF

Info

Publication number
CN116158058A
CN116158058A CN202180060290.7A CN202180060290A CN116158058A CN 116158058 A CN116158058 A CN 116158058A CN 202180060290 A CN202180060290 A CN 202180060290A CN 116158058 A CN116158058 A CN 116158058A
Authority
CN
China
Prior art keywords
session
account
task
deployment
remote
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.)
Pending
Application number
CN202180060290.7A
Other languages
English (en)
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 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 CN116158058A publication Critical patent/CN116158058A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/604Tools and structures for managing or administering access control systems
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施例可以提供用于使用多个账户执行诸如数据共享和数据复制的操作的简化过程。可以采用全局身份(也称为组织用户),其中全局身份可以具有对相同或不同部署上的多个账户的访问权。全局身份可以根据其登录会话在账户之间切换,并在不同账户的上下文中执行各种任务,而无需进行进一步的认证。

Description

使用全局身份的远程执行
相关申请的交叉引用
本申请要求在2020年7月17日提交的美国专利申请序列号16/931,808的优先权的权益,该美国专利申请的内容在此通过引用以其整体并入。
技术领域
本公开大体上涉及与不同账户相关联的任务的远程执行。
背景
数据库和其他数据处理系统可以以不同的配置和布置来实现。例如,云数据库系统可以通过云平台来提供,该云平台允许组织和用户存储、管理数据和从云检索数据。除了使用不同类型的部署之外,组织还可以利用不同区域中的部署。例如,云数据库系统可以被实现为公共部署,其中多个账户可以共享处理资源和/或存储装置。云数据库系统也可以被实现为私有部署,其中处理资源和/或存储装置是专用的且隔离的。
然而,在这样的系统中,执行一些操作可能是麻烦的。一些操作可能包括多个账户的参与。例如,操作可以包括使用第一账户执行第一任务,然后使用第二账户执行第二任务,等等。因此,用户将不得不登录到第一账户来执行第一任务、登出,然后登录到第二账户来执行第二任务等等,这导致低效的过程。
附图简述
各种附图仅示出了本公开的示例实施例,不应被视为限制其范围。
图1示出了根据一些示例实施例的示例计算环境,其中基于网络的数据仓库系统可以在共享数据库对象上实现流(stream)。
图2是示出根据一些示例实施例的计算服务管理器的部件的框图。
图3是示出根据一些示例实施例的执行平台的部件的框图。
图4是示出根据一些示例实施例的多部署环境的框图。
图5是示出根据一些示例实施例的全局身份(identity)的关系树的框图。
图6是示出根据一些示例实施例的登录会话的框图。
图7显示了根据一些示例实施例的用于使用全局身份执行操作的流程图。
图8显示了根据一些示例实施例的用于远程处理的流程图。
图9A-图9B显示了根据一些示例实施例的用于操作登录会话的流程图。
图10示出了根据本公开的一些实施例的计算机系统形式的机器的图解表示,在该计算机系统形式的机器内可以执行指令集,以用于使机器执行本文所讨论方法中的任何一种或更多种方法。
详细描述
以下描述包括体现本公开的说明性实施例的系统、方法、技术、指令序列和计算机器程序产品。在下面的描述中,出于解释的目的,阐述了许多具体的细节以提供对本发明主题的各种实施例的理解。然而,对于本领域技术人员将明显的是,可以在没有这些具体细节的情况下实施本发明主题的实施例。一般来说,众所周知的指令实例、协议、结构和技术没有必要详细示出。
本公开的实施例可以提供用于使用多个账户执行诸如数据共享和数据复制的操作的简化(streamlined)过程。可以采用全局身份(也称为组织用户),其中全局身份可以具有对相同或不同部署上的多个账户的访问权。全局身份可以根据其登录会话在账户之间切换,并在不同账户的上下文中执行各种任务,而无需进行进一步的认证。从用户的角度来看,不管全局身份使用哪个账户,任务的执行可能看起来都是一样的,因为登录会话可以用于所有的任务执行。然而,在后端,可以采用远程会话和代理用户来使用不同账户执行任务。因此,这些任务可以在来自登录会话中的其他账户的上下文中执行。
图1示出了根据本公开的一些实施例的示例共享数据处理平台100。为了避免用不必要的细节模糊本发明主题,图中已经省略了与传达对本发明主题的理解不密切相关的各种功能部件。然而,本领域技术人员将容易认识到,各种附加功能部件可以被包括作为共享数据处理平台100的一部分,以有助于本文没有具体描述的附加功能。
如图所示,共享数据处理平台100包括基于网络的数据仓库系统102、云计算存储平台104(例如,存储平台、
Figure BDA0004113749500000031
服务、Microsoft/>
Figure BDA0004113749500000032
或Google Cloud/>
Figure BDA0004113749500000033
)和远程计算设备106。基于网络的数据仓库系统102是基于网络的系统,用于以集成方式存储和访问数据(例如,在内部存储数据,访问外部远程定位的数据),以及报告和分析来自一个或更多个不同源(例如,云计算存储平台104)的集成数据。云计算存储平台104包括多个计算机器,并向基于网络的数据仓库系统102按需提供计算机系统资源,例如数据存储和计算能力。虽然在图1所示的实施例中描绘了数据仓库,但是其他实施例可以包括其他类型的数据库或其他数据处理系统。
远程计算设备106(例如,诸如膝上型计算机的用户设备)包括一个或更多个计算机器(例如,诸如膝上型计算机的用户设备),这些计算机器执行远程软件部件108(例如,浏览器访问的云服务)以向基于网络的数据仓库系统102的用户提供附加功能。远程软件部件108包括机器可读指令(例如,代码)的集合,所述指令在被远程计算设备106执行时使远程计算设备106提供某些功能。远程软件部件108可以对输入数据进行操作,并基于处理、分析或以其他方式变换输入数据来生成结果数据。作为示例,如下面进一步详细讨论的,远程软件部件108可以是启用数据库跟踪过程(例如在共享表和视图上的流)的数据提供者或数据消费者。
基于网络的数据仓库系统102包括访问管理系统110、计算服务管理器112、执行平台114和数据库116。访问管理系统110使管理用户能够管理对由基于网络的数据仓库系统102提供的资源和服务的访问。管理用户可以创建和管理用户、角色和群组,并使用许可来允许或拒绝对资源和服务的访问。如下面进一步详细讨论的,访问管理系统110可以存储共享数据,该共享数据安全地管理基于网络的数据仓库系统102的不同用户之间对云计算存储平台104的存储资源的共享访问。
计算服务管理器112协调和管理基于网络的数据仓库系统102的操作。计算服务管理器112还执行查询优化和编译,以及管理提供计算资源的计算服务的集群(例如虚拟仓库、虚拟机、EC2集群)。计算服务管理器112可以支持任意数量的客户端账户,例如提供数据存储和检索请求的终端用户、管理本文描述的系统和方法的系统管理员、以及与计算服务管理器112交互的其他部件/设备。
计算服务管理器112还耦合到数据库116,该数据库116与存储在共享数据处理平台100上的全部数据相关联。数据库116存储涉及与基于网络的数据仓库系统102及其用户相关联的各种功能和方面的数据。
在一些实施例中,数据库116包括存储在远程数据存储系统中的数据以及可从一个或更多个本地高速缓存获得的数据的摘要。另外,数据库116可以包括有关在远程数据存储系统和本地高速缓存中如何组织数据的信息。数据库116允许系统和服务确定是否需要访问一段数据,而无需从存储设备加载或访问实际数据。计算服务管理器112还耦合到执行平台114,执行平台114提供执行各种数据存储和数据检索任务的多个计算资源(例如,虚拟仓库),如下面更详细地讨论的。
执行平台114耦合到作为云计算存储平台104的一部分的多个数据存储设备124-1至124-n。在一些实施例中,数据存储设备124-1至124-n是位于一个或更多个地理位置的基于云的存储设备。例如,数据存储设备124-1至124-n可以是公共云基础设施或私有云基础设施的一部分。数据存储设备124-1至124-n可以是硬盘驱动(HDD)、固态驱动(SSD)、存储装置集群、亚马孙(Amazon)S3存储系统或任何其它数据存储技术。另外,云计算存储平台104可以包括分布式文件系统(例如Hadoop分布式文件系统(HDFS))、对象存储系统等。
执行平台114包括多个计算节点(例如,虚拟仓库)。计算节点上的进程集合执行由计算服务管理器112编译的查询计划。该进程集合可以包括:执行查询计划的第一进程;第二进程,该第二进程使用最近最少使用(least recently used,LRU)策略来监视和删除微分区文件,并实现内存不足(OOM)错误缓解进程;从进程日志和状态信息提取健康信息以发送回计算服务管理器112的第三进程;在系统引导(boot)之后建立与计算服务管理器112的通信的第四进程;以及第五进程,该第五进程为计算服务管理器112提供的给定作业处理与计算集群的所有通信,并将信息传送回计算服务管理器112和执行平台114的其他计算节点。
云计算存储平台104还包括访问管理系统118和web代理120。如同访问管理系统110一样,访问管理系统118允许用户创建和管理用户、角色和群组,并使用许可来允许或拒绝对云服务和资源的访问。基于网络的数据仓库系统102的访问管理系统110和云计算存储平台104的访问管理系统118可以通信和共享信息,以便能够访问和管理由基于网络的数据仓库系统102和云计算存储平台104二者的用户共享的资源和服务。web代理120处理在接受和处理并发API调用中所涉及的任务,包括流量管理、授权和访问控制、监视和API版本管理。web代理120为创建、发布、维护、保护和监视API(例如REST API)提供HTTP代理服务。
在一些实施例中,共享数据处理平台100的元件之间的通信链路经由一个或更多个数据通信网络来实现。这些数据通信网络可以利用任何通信协议和任何类型的通信介质。在一些实施例中,数据通信网络是彼此耦合的两个或更多个数据通信网络(或子网络)的组合。在可替代实施例中,这些通信链路是使用任何类型的通信介质和任何通信协议来实现的。
如图1所示,数据存储设备124-1至124-N和与执行平台114相关联的计算资源解耦。也就是说,可以在执行平台114中创建和终止新的虚拟仓库,并且可以以独立的方式在云计算存储平台104上创建和终止另外的数据存储设备。该架构支持基于网络的数据仓库系统102的动态改变,该动态改变基于变化的数据存储/检索需求以及用户和系统访问共享数据处理平台100的变化的需求。对动态改变的支持允许基于网络的数据仓库系统102响应于对基于网络的数据仓库系统102内的系统和部件的不断变化的需求而快速按比例缩放(scale)。计算资源与数据存储设备124-1至124-n的解耦支持大量数据的存储,而不要求相应的大量计算资源。类似地,资源的这种解耦支持在特定时间使用的计算资源的显著增加,而不要求相应地增加可用的数据存储资源。此外,资源的解耦使不同的账户能够处理创建额外的计算资源来处理由其他用户共享的数据,而不会影响其他用户的系统。例如,数据提供者可以具有三个计算资源,并且与数据消费者共享数据,并且数据消费者可以生成新的计算资源来执行对共享数据的查询,其中该新的计算资源由数据消费者管理,而不会影响数据提供者的计算资源或不与数据提供者的计算资源交互。
计算服务管理器112、数据库116、执行平台114、云计算存储平台104和远程计算设备106在图1中被示为单独的部件。然而,计算服务管理器112、数据库116、执行平台114、云计算存储平台104和远程计算环境中的每一个都可以被实现为通过API和访问信息(例如,令牌(token)、登录数据)连接的分布式系统(例如,跨多个地理位置处的多个系统/平台分布)。另外,计算服务管理器112、数据库116、执行平台114和云计算存储平台104中的每一个可以根据所接收请求的变化和共享数据处理平台100的变化的需求而(彼此独立地)按比例扩大或缩小。因此,在所描述的实施例中,基于网络的数据仓库系统102是动态的,并且支持定期改变以满足当前的数据处理需求。
在典型操作期间,基于网络的数据仓库系统102处理由计算服务管理器112确定的多个作业(例如,查询)。这些作业由计算服务管理器112调度和管理,以确定何时以及如何执行作业。例如,计算服务管理器112可以将作业划分为多个离散任务,并且可以确定需要什么数据来执行多个离散任务中的每个离散任务。计算服务管理器112可以将多个离散任务中的每个离散任务分配给执行平台114的一个或更多个节点以处理任务。计算服务管理器112可以确定需要什么数据来处理任务,并且进一步确定执行平台114内的哪些节点最适合于处理该任务。一些节点可能已经缓存了处理任务所需的数据(由于这些节点最近已经从云计算存储平台104下载了数据用于先前的作业),因此他们是用于处理任务的良好候选。存储在数据库116中的元数据帮助计算服务管理器112确定执行平台114中的哪些节点已经缓存了处理任务所需的数据的至少一部分。执行平台114中的一个或更多个节点使用由这些节点缓存的数据以及必要时使用从云计算存储平台104检索到的数据来处理任务。期望从执行平台114内的高速缓存中检索尽可能多的数据,因为检索速度通常比从云计算存储平台104中检索数据快得多。
如图1所示,共享数据处理平台100将执行平台114与云计算存储平台104分开。在这种布置中,执行平台114中的处理资源和高速缓存资源独立于云计算存储平台104中的数据存储设备124-1至124-n进行操作。因此,计算资源和高速缓存资源不限于具体的数据存储设备124-1至124-n。相反,所有计算资源和所有高速缓存资源可以从云计算存储平台104中的任何数据存储资源检索数据,并将数据存储到云计算存储平台104中的任何数据存储资源。
图2是示出根据本公开的一些实施例的计算服务管理器112的部件的框图。如图2所示,请求处理服务202管理接收到的数据存储请求和数据检索请求(例如,要对数据库数据执行的作业)。例如,请求处理服务202可以确定处理接收到的查询(例如,数据存储请求或数据检索请求)所需的数据。该数据可能被存储在执行平台114内的高速缓存中,或者被存储在云计算存储平台104中的数据存储设备中。管理控制台服务204支持管理员和其他系统管理者对各种系统和进程的访问。另外,管理控制台服务204可以接收执行作业并监视系统上的工作负荷的请求。根据一些示例实施例,并且如下面进一步详细讨论的,流共享引擎225管理对数据库对象(例如,数据共享(例如,共享表)或共享视图)的变化跟踪。
计算服务管理器112还包括作业编译器206、作业优化器208和作业执行器210。作业编译器206将作业解析为多个离散任务,并为多个离散任务中的每个离散任务生成执行代码。作业优化器208基于需要处理的数据来确定执行多个离散任务的最佳方法。作业优化器208还处理各种数据修剪操作和其他数据优化技术,以提高执行作业的速度和效率。作业执行器210执行从队列接收的或由计算服务管理器112确定的作业的执行代码。
作业调度程序和协调器(job scheduler and coordinator)212将接收到的作业发送到适当的服务或系统,以进行编译、优化并分派到执行平台114。例如,可以将作业优先化并按该优先顺序对作业进行处理。在实施例中,作业调度程序和协调器212为由计算服务管理器112调度的内部作业和可以由数据库中的其他系统调度但可以利用执行平台114中的相同处理资源的其他“外部”作业(例如用户查询)确定优先级。在一些实施例中,作业调度程序和协调器212识别或分配执行平台114中的特定节点来处理特定任务。虚拟仓库管理器214管理在执行平台114中实现的多个虚拟仓库的操作。如下面所讨论的,每个虚拟仓库包括多个执行节点,每个执行节点包括高速缓存和处理器(例如,虚拟机、操作系统级容器执行环境)。
另外,计算服务管理器112包括配置和元数据管理器216,其管理与存储在远程数据存储设备中和本地高速缓存(即,执行平台114中的高速缓存)中的数据有关的信息。配置和元数据管理器216使用元数据来确定需要访问哪些数据微分区来检索用于处理特定任务或作业的数据。监视器和工作负荷分析器218监督由计算服务管理器112执行的进程,并管理跨执行平台114中的虚拟仓库和执行节点的任务(例如,工作负荷)分配。监视器和工作负荷分析器218还根据需要,基于整个基于网络的数据仓库系统102中不断变化的工作负荷来重新分配任务,并且还可以基于也可以由执行平台114处理的用户(例如,“外部”)查询工作负荷来重新分配任务。配置和元数据管理器216以及监视器和工作负荷分析器218耦合到数据存储设备220。图2中的数据存储设备220表示基于网络的数据仓库系统102内的任何数据存储设备。例如,数据存储设备220可以表示执行平台114中的高速缓存、云计算存储平台104中的存储设备或任何其他存储设备。
图3是示出根据本公开的一些实施例的执行平台114的部件的框图。如图3所示,执行平台114包括多个虚拟仓库,这些虚拟仓库是诸如虚拟机的计算实例的弹性集群。在所示的示例中,虚拟仓库包括虚拟仓库1、虚拟仓库2和虚拟仓库n。每个虚拟仓库(例如,EC2集群)包括多个执行节点(例如,虚拟机),每个执行节点包括数据高速缓存和处理器。虚拟仓库可以通过使用多个执行节点来并行执行多个任务。如本文中所讨论的,执行平台114可以基于系统和用户的当前处理需求,实时地添加新的虚拟仓库和丢弃现有的虚拟仓库。这种灵活性允许执行平台114在需要时快速部署大量计算资源,而不必在不再需要这些计算资源时被迫继续为它们付费。所有虚拟仓库都可以从任何数据存储设备(例如,云计算存储平台104中的任何存储设备)访问数据。
尽管图3中所示的每个虚拟仓库包括三个执行节点,但是特定的虚拟仓库可以包括任意数量的执行节点。此外,虚拟仓库中执行节点的数量是动态的,使得当存在额外需求时创建新的执行节点,并且当不再需要现有的执行节点时(例如,在查询或工作完成时)将其删除。
每个虚拟仓库能够访问图1中所示的数据存储设备124-1至124-n中的任何一个。因此,虚拟仓库没有必要被分配给特定的数据存储设备124-1至124-n,而是可以从云计算存储平台104内的数据存储设备124-1至124-n中的任何一个访问数据。类似地,图3中所示的每个执行节点可以从数据存储设备124-1至124-n中的任何一个访问数据。例如,第一用户(例如,提供者账户用户)的存储设备124-1可以与另一用户(例如,消费者账户用户)的虚拟仓库中的工作者节点共享,使得该另一用户可以创建数据库(例如,只读数据库)并直接使用存储设备124-1中的数据,而不需要复制数据(例如,将其复制到由消费者账户用户管理的新磁盘)。在一些实施例中,可以将特定虚拟仓库或特定执行节点临时分配给特定数据存储设备,但是该虚拟仓库或执行节点可以稍后从任何其他数据存储设备访问数据。
在图3的示例中,虚拟仓库1包括三个执行节点302-1、302-2和302-n。执行节点302-1包括高速缓存304-1和处理器306-1。执行节点302-2包括高速缓存304-2和处理器306-2。执行节点302-n包括高速缓存304-n和处理器306-n。每个执行节点302-1、302-2和302-n与处理一个或更多个数据存储和/或数据检索任务相关联。例如,虚拟仓库可以处理与内部服务(例如,聚类(clustering)服务、物化视图刷新(materialized view refresh)服务、文件压缩服务、存储过程服务、或文件升级服务)相关联的数据存储和数据检索任务。在其他实施方式中,特定虚拟仓库可以处理与特定数据存储系统或特定类别的数据相关联的数据存储和数据检索任务。
类似于上面讨论的虚拟仓库1,虚拟仓库2包括三个执行节点312-1、312-2和312-n。执行节点312-1包括高速缓存314-1和处理器316-1。执行节点312-2包括高速缓存314-2和处理器316-2。执行节点312-n包括高速缓存314-n和处理器316-n。另外,虚拟仓库3包括三个执行节点322-1、322-2和322-n。执行节点322-1包括高速缓存324-1和处理器326-1。执行节点322-2包括高速缓存324-2和处理器326-2。执行节点322-n包括高速缓存324-n和处理器326-n。
在一些实施例中,相对于执行节点正在缓存的数据而言,图3所示的执行节点是无状态的。例如,这些执行节点不存储或以其他方式维护关于执行节点的状态信息、或数据由特定执行节点缓存。因此,在执行节点发生故障的情况下,可以用另一个节点透明地替换发生故障的节点。由于没有与发生故障的执行节点相关联的状态信息,所以新的(替换)执行节点可以轻松替换发生故障的节点,而无需考虑重新创建特定状态。
尽管图3所示的执行节点各自包括一个数据高速缓存和一个处理器,但是替代实施例可以包括包含任意数量的处理器和任意数量的高速缓存的执行节点。另外,高速缓存的大小在不同执行节点之间可以有所不同。图3所示的高速缓存将从云计算存储平台104中的一个或更多个数据存储设备检索的数据(例如,给定节点最近访问的S3对象)存储在本地执行节点(例如,本地磁盘)中。在一些示例实施例中,当查询仅下载该查询所需的列时,高速缓存存储文件头和文件的各个列。
为了改善高速缓存命中和避免重叠的冗余数据被存储在节点高速缓存中,作业优化器208使用一致的散列(hashing)方案将输入文件集合分配给节点,以对所访问的数据(例如,数据库116或数据库122中的数据)的表文件名进行散列。根据一些示例实施例,访问相同表文件的后续或并发查询将因此在相同节点上执行。
如所讨论的,节点和虚拟仓库可以响应于环境条件(例如,灾难场景)、硬件/软件问题(例如,故障)或管理改变(例如,从大集群改变到较小的集群以降低成本)而动态改变。在一些示例实施例中,当节点集合改变时,没有数据被立即重新安排(reshuffle)。相反,实现最近最少使用替换策略,以最终替换多个作业中丢失的缓存内容。因此,高速缓存减小或消除了在从远程存储系统中不断检索数据的平台中出现的瓶颈问题。本文描述的系统和方法不是从远程存储设备重复访问数据,而是从执行节点中的高速缓存访问数据,这明显更快并且避免了上面讨论的瓶颈问题。在一些实施例中,使用提供对高速缓存的数据的快速访问的高速存储器设备来实现高速缓存。每个高速缓存可以存储来自云计算存储平台104中的任何存储设备的数据。
此外,高速缓存资源和计算资源可以在不同的执行节点之间变化。例如,一个执行节点可以包含大量的计算资源和最少的高速缓存资源,从而使该执行节点对于需要大量计算资源的任务很有用。另一个执行节点可以包含大量的高速缓存资源和最少的计算资源,从而使该执行节点对于需要缓存大量数据的任务很有用。又一个执行节点可以包含提供更快的输入-输出操作的高速缓存资源,这对于需要快速扫描大量数据的任务很有用。在一些实施例中,执行平台114实现偏斜处理(skew handling),以在与特定执行相关联的高速缓存资源和计算资源之间分配工作,其中该分配可以进一步基于要由执行节点执行的预期任务。例如,如果执行节点执行的任务变得更加的处理器密集,则可以为执行节点分配更多的处理资源。类似地,如果执行节点执行的任务需要更大的高速缓存容量,则可以为执行节点分配更多的高速缓存资源。此外,由于各种问题(例如,虚拟化问题、网络开销),一些节点可能比其他节点执行得慢得多。在一些示例实施例中,使用文件窃取方案在扫描级别处解决不平衡。特别地,每当节点进程完成对其输入文件集合的扫描时,它都会从其他节点请求额外的文件。如果其他节点中的一个节点接收到这样的请求,则该节点分析其自己的集合(例如,在接收到请求时输入文件集合中还剩多少文件),然后在当前作业(例如,查询)的持续时间内转移一个或更多个剩余文件的所有权。请求节点(例如,文件窃取节点)然后接收数据(例如,头数据)并从云计算存储平台104(例如,从数据存储设备124-1)下载文件,而不从转移节点下载文件。以这种方式,滞后节点可以以不会恶化滞后节点上的负荷的方式经由文件窃取来转移文件。
尽管虚拟仓库1、2和n与同一执行平台114相关联,但是可以使用在多个地理位置处的多个计算系统来实现虚拟仓库。例如,虚拟仓库1可以由第一地理位置处的计算系统来实现,而虚拟仓库2和虚拟仓库n可以由第二地理位置处的另一计算系统来实现。在一些实施例中,这些不同的计算系统是由一个或更多个不同实体维护的基于云的计算系统。
另外,每个虚拟仓库在图3中被示为具有多个执行节点。可以使用在多个地理位置处的多个计算系统来实现与每个虚拟仓库相关联的多个执行节点。例如,虚拟仓库1的实例在一个地理位置处的一个计算平台上实现执行节点302-1和302-2,而在另一个地理位置处的不同计算平台上实现执行节点302-n。选择特定计算系统来实现执行节点可以取决于各种因素,例如特定的执行节点所需的资源水平(例如,处理资源要求和高速缓存要求)、特定计算系统处可用的资源、地理位置内或地理位置之间的网络的通信能力、以及哪些计算系统已经实现虚拟仓库中的其他执行节点。
执行平台114也是容错的。例如,如果一个虚拟仓库发生故障,那么该虚拟仓库将快速地被位于不同地理位置处的不同虚拟仓库替换。
特定执行平台114可以包括任意数量的虚拟仓库。另外,特定执行平台中虚拟仓库的数量是动态的,使得当需要附加的处理和/或高速缓存资源时创建新的虚拟仓库。类似地,当与虚拟仓库相关联的资源不再是必要的时,可以删除现有的虚拟仓库。
在一些实施例中,虚拟仓库可以在云计算存储平台104中的相同数据上操作,但是每个虚拟仓库具有其自己的执行节点,其自己的执行节点具有独立的处理和高速缓存资源。这种配置允许不同虚拟仓库上的请求被独立地处理,并且请求之间没有干扰。这种独立处理与动态添加和移除虚拟仓库的能力相结合,支持为新用户添加新的处理能力,而不会影响现有用户观察到的性能。
图4显示了根据一些示例实施例的示例多部署环境。部署可以包括多个部件,诸如元数据存储区、前端层、负荷平衡层、数据仓库等,如上面关于图1-3所讨论的。可以为一个或更多个组织提供多部署环境,并且该多部署环境可以包括多个公共部署和私有部署。公共部署可以被实现为多租户环境,其中每个租户或账户共享处理和/或存储资源。例如,在公共部署中,多个账户可以共享元数据存储区、前端层、负荷平衡层、数据仓库等。另一方面,私有部署可以被实现为专用的、隔离的环境,其中处理和/或存储资源可以是专用的。因此,在一些配置中,私有部署可以提供更好的安全性和更好的性能。
在图4中,私有部署1(PRD1)410可以在云提供商区域A中提供,公共部署1(PUD1)420也可以在云提供商区域A中提供。私有部署2(PRD2)430可以在另一个云提供商区域B中提供,公共部署2(PUD2)440也可以在云提供商区域B中提供。例如,云提供商区域A和B可以是不同的地理区域。
在该示例中,不同的部署410、420、430、440被配置成彼此通信。例如,它们各自可以在全局消息传递层中向/从彼此发送/接收消息。为此,每个部署可以包括对应于其他通信耦合的部署的部署对象,该部署对象表示到目标部署的链接。例如,PRD1 410可以包括PUD1部署对象412、PUD2部署对象414和PRD2部署对象416。PUD1 420可以包括PRD1部署对象422、PRD2部署对象424和PUD2部署对象426。PRD2 430可以包括PRD1部署对象432、PUD1部署对象434和PUD2部署对象436。PUD2 440可以包括PRD1部署对象442、PUD1部署对象444和PRD2部署对象446。在实施例中,可以使用元数据存储区来执行部署之间的通信。例如,一个部署可以将消息写入元数据存储区,而另一个部署可以从元数据存储区读取该消息。
此外,每个部署可以具有与其相关联的不同账户。例如,PRD1 410可以具有与其相关联的账户A-F;PUD1 420可以具有与其相关联的账户G-L;PRD2 430可能具有与其相关联的账户M-R;以及PUD2 440可以具有与其相关联的账户S-X。某些操作(诸如复制数据或共享数据)可能涉及要由同一部署或不同部署中的不同账户执行的任务。
如本文所描述的全局身份(也称为组织用户)和远程处理可以用来简化这样的操作的执行。全局身份可以是可以已知并具有对多个账户的访问权的身份。这些账户可以在组织内,并且可以与同一部署或不同的部署相关联。
图5显示了根据一些示例实施例的全局身份(GI 1)502的示例关系。全局身份(GI1)502可以与多个选定的账户相关联,并且能够访问这些账户而无需进一步的认证。一旦全局身份被认证,它就可以访问与该全局身份相关联的不同账户,并在这些账户的上下文中执行任务,而无需为这些不同的账户提供进一步的认证。这是因为全局身份可以使用全局认证机制进行认证,全局认证机制是跨组织被信任的认证机制。全局认证机制可以创建单向信任关系(也称为信任域或可信域),其中组织账户可以信任由全局认证机制做出的身份断言。因此,每个映射账户可以允许基于来自全局认证机制的可信身份断言来执行任务和语句,而无需进一步的认证。
GI 1 502可以被映射到跨不同部署、云提供商和/或区域的不同账户。例如,往回参考图4的账户,GI 1 502可以被映射到来自PRD1 410的账户A和B、来自PUD1 420的账户G和H、来自PRD2 430的账户M和N以及来自PUD2 440的账户S和T。全局身份的映射账户可以由管理员设置,管理员是被授权管理组织级实体和元数据的用户。附加地或替代地,可以基于一组策略规则来设置全局身份的映射账户。例如,可以设置策略规则,使得某种类型(某些类型)的账户自动映射到某些全局身份。例如,策略规则可以自动将组织中的所有开发类型账户映射到选定的全局身份,而不考虑区域或部署。因此,用户可以作为选定的全局身份登录,可以具有对组织中的所有开发账户的访问权,并且可以在这些开发账户中的任何一个的上下文中执行任务。此外,如果在该组织内创建了新的开发账户,则该新的开发账户可以自动映射到选定的全局身份。
在全局身份被认证之后,可以建立登录会话。例如,登录会话可以与账户和用户ID相关联。登录会话可以提供对与全局身份相关联的映射账户的访问权。图6显示了根据一些示例实施例的全局身份的登录会话600。登录会话600可以提供关于映射账户602的信息。
接下来,描述能够由全局身份执行的不同动作。图7显示了根据一些示例实施例的用于使用全局身份执行操作的方法700的流程图。在操作705处,可以接收关于组织中用户的登录信息。登录信息可以与由组织定义的全局身份相关联。在操作710处,如本文所述,可以使用全局认证机制来认证关于全局身份(或组织用户)的登录信息。例如,可以采用双因素认证来认证全局身份。在操作715处,可以建立登录会话。登录会话可以提供对全局身份的映射账户的访问权,而无需进一步的认证。也就是说,由于由全局认证机制建立的信任关系,用户可以在映射账户的上下文中访问和执行任务,而不必为那些账户提供进一步的认证。
在操作720处,根据登录会话,第一任务可以在全局身份的映射账户集中的第一映射账户的上下文中被执行。如下面进一步详细解释的,与第一账户相关联的部署可以采用远程处理来执行第一任务。
在操作725处,同样根据登录会话,第二任务可以在全局身份的映射账户集中的第二映射账户的上下文中被执行。如下面进一步详细解释的,与第二账户相关联的部署可以采用远程处理来执行第二任务。在实施例中,与第一账户相关联的部署和与第二账户相关联的部署可以是相同的部署或不同的部署。因此,单个用户可以使用来自单个登录会话的不同账户执行多个任务。因此,全局身份和远程处理为用户跨不同账户执行多个任务提供了简化的接口。
在实施例中,不同的任务可以是较大操作(例如数据复制或数据共享)的一部分。例如,使用全局身份,可以使用单个登录会话复制数据库。首先,使用全局身份的第一映射账户,可以创建主数据库,并且可以启用该数据库的复制。接下来,使用全局身份的第二映射账户,可以创建数据库,将它链接到主数据库,使得它成为主数据库的副本。
上面的描述主要集中在前端(例如,用户看到的那些)。接下来,描述后端操作。根据登录会话,组织用户可以请求执行要在映射账户的上下文中执行的一些语句。在后端中,这可以通过使用“使用账户(use account)”语句来完成,该语句可以向登录会话指示后续语句应该在所识别的账户的上下文中被执行。远程会话可以被创建,然后用于执行这些后续语句。远程会话可以是持久会话。远程会话可以由存储关于活跃的远程会话的信息的会话池来维护。可以在登录会话的会话池中并行提供远程会话,以便用户可以从一个账户切换到另一个账户。
图8显示了根据一些示例实施例的用于远程处理的方法800的流程图。如上所述,可以在认证全局身份和建立登录会话之后执行方法800。在操作805处,在源部署(例如,全局服务(GS))处的登录会话中接收到来自(作为全局身份登录的)组织用户的指令。指令可以包括与映射账户之一(例如,账户A)相关联的命令或执行语句。例如,指令可以是SQL语句。
在操作810处,源部署可以向与账户A相关联的部署传输建立远程会话的请求。目标部署可以与源部署相同,或者可以是不同的部署。远程会话可以指的是在使用另一账户的上下文中的远程。该请求可以在全局消息传递层上被发送。该请求可以包括一个或更多个参数,包括账户名(对于组织用户来说)、组织用户名、会话参数和/或认证令牌。认证令牌可以是用于验证组织用户的身份的单点登录(SSO)令牌。
在操作815处,与账户A相关联的部署可以接收请求并且可以建立远程会话。可以给予远程会话一个远程会话ID。与账户A相关联的部署还可以建立与组织用户相关联的代理用户。代理用户可以表现为类似于部署的本地用户。在实施例中,代理用户的用户名可以是组织用户的用户名。然而,至少一个属性值可以与代理用户相关联,指示代理用户正代表组织用户。
在操作820处,与账户A相关联的部署可以向源部署传输关于远程会话的建立的确认。该确认可以包括远程会话的状态(例如,已建立/失败)和远程会话ID。在操作825处,远程会话ID可以存储在与登录会话相关联的会话池中。会话池可以维护关于已经为登录会话建立的远程会话集的数据。例如,会话池可以包括关于与其他映射账户相关联的其他远程会话的信息。会话池可以在后端维护,并且用户可能不知道它。
在操作830处,源部署可以向与账户A相关联的部署传输执行请求。例如,该执行请求可以包括执行语句和/或查询执行任务的请求。请求可以包括一个或更多个参数,该参数包括远程会话ID和语句/执行任务ID。
在操作835处,响应于接收到执行请求,与账户A相关联的部署可以使用已建立的远程会话和代理用户来执行该请求。如果执行生成结果,则这些结果集可以存储在例如云存储中。
在操作840处,与账户相关联的部署可以向源部署发送对执行请求的响应。响应可以包括执行的结果或指示执行的结果。对于执行语句示例,响应可以包括状态(例如,已开始/失败)和执行任务ID。对于查询执行任务,响应可以包括任务状态(例如,进行中/完成)、任务返回代码和任务结果集ID。任务结果集ID可以用于例如从云存储中检索结果集。
可以为全局身份的其他映射账户建立额外的远程会话,并且可以基于用户的请求在这些建立的远程会话上执行其他任务。关于这些远程会话的信息可以在登录会话的会话池中被存储和维护。例如,可以执行操作805-840以最初建立远程会话并在该远程会话中执行第一任务。此外,一旦建立了远程会话,就可以通过从会话池中检索信息来使用该远程会话执行其他任务。例如,对于与已建立的远程会话相关联的附加任务,可以执行操作825-840。
在实施例中,组织用户可以取消执行任务。例如,响应于来自组织用户的取消执行任务的指令,源部署可以向与用于执行的账户相关联的部署传输取消请求。取消请求可以包括一个或更多个参数,该参数包括远程会话ID和执行任务ID。响应于取消请求,部署可以使用所识别的远程会话来取消所识别的执行任务。部署可以传输响应,该响应可以包括请求的状态(例如,已取消/失败)。在另一个实施例中,可以不发送响应于取消请求的响应。
用户还可以创建/使用会话本地状态信息(session-local state information),诸如临时表、会话变量、会话参数等。例如,用户可以在登录会话期间创建一个或更多个临时表。这些临时表可以在登录会话的持续时间内可用。可以在登录会话中创建临时表(例如,用于本地执行的任务)和/或在远程会话中创建临时表。即使后端可能从一个账户切换到另一个账户,组织用户也可以看到临时表。当在先前使用的不同映射账户之间切换时,使用会话池来针对其他任务重新使用已经建立的远程会话可以确保在远程会话中创建的临时表将在登录会话的持续时间内继续存在。
可以在登录会话和会话池中的一个或更多个远程会话之间保持一致性。可以跨不同的远程会话维护会话状态信息。这可以包括会话参数信息以及还有状态信息(诸如查询结果),使得它们跨不同的会话可用。例如,对登录会话所做的改变可以被复制到会话池中的所有活跃的远程会话。更改会话(an alter session)可以在登录会话中执行,并且还可以被发送到每个活跃的远程会话以供执行,使得所有远程会话都可以反映更改会话命令中所指示的改变。此外,可以以反映更改会话命令的方式建立和初始化在更改会话命令之后建立的新远程会话。
登录会话可以将已建立的远程会话保持为会话池中的活跃会话。在实施例中,登录会话可以执行刷新操作以保持已建立的远程会话活跃。在实施例中,远程会话可能超时,并且可能从会话池中的活跃会话列表中移除。
远程会话可以被终止。例如,登录会话可能希望终止远程会话。为了终止远程会话,登录会话可以向与用于执行的账户相关联的部署传输终止请求。终止请求可以包括一个或更多个参数,该参数包括远程会话ID。响应于终止请求,部署可以终止远程会话。部署可以传输响应,该响应可以包括请求的状态(例如,已终止/失败)。在另一个实施例中,可以不发送响应于终止请求的响应。
此外,所有活跃的远程会话可以在登录会话终止时被终止。登录会话可以在其自己终止时向所有活跃的远程会话传输终止请求。
图9A-图9B示出了根据一些示例实施例的用于对于组织用户操作登录会话的方法900的流程图。在操作902处,用户发出连接到账户(连接acct 1)的请求,并且源部署可以接收该请求并认证用户凭证。如本文所述,源部署可以使用全局认证机制将用户认证为组织用户(全局身份)。
在操作904处,可以为“acct 1”创建登录会话。由于登录会话刚刚被创建,因此可能没有活跃的远程会话。因此,远程会话的值被设置为空值(null),“远程_会话=空值”,并且会话池是空的,“会话_池=<空池>”。在操作906处,用户可以提交用于执行的语句,诸如SQL语句。在操作908处,该语句可以被解析以创建解析树。
接下来,源部署可以确定与该语句相关联的任务。在操作910中,源部署可以检查该语句是否包括断开或终止登录会话的请求、即“断开(DISCONNECT)”。在操作912处,如果该语句包括断开/终止的请求,则登录会话可以向会话池中的每个远程会话(如果有的话)发送断开/终止请求。在操作914处,可以终止登录会话并且可以执行清理操作。例如,清理操作可以包括删除如本文所述在登录会话期间创建的任何临时表。
如果该语句不包括断开/终止的请求,则在操作916处,源部署可以检查该语句是否包括使用全局身份的映射账户的请求、即“使用账户(USE ACCOUNT)”。在操作918处,如果该语句包括“使用账户”请求,则登录会话检查目标账户是否是登录会话账户,例如acct1。在操作920处,如果目标账户是登录会话账户,则远程会话寄存器可以被设置为空值(登录_会话.远程_会话=空值)。然后,方法900可以移动到下一个用户语句(例如,操作906)。然而,如果目标账户不是登录会话账户,则在操作922处,登录会话然后可以检查目标账户是否已经在会话池中。在操作924处,如果目标账户已经在会话池中(并且因此可以具有远程会话ID),则登录_会话.远程_会话可以被设置为目标账户(“会话_池[目标]”)。然后,方法900可以移动到下一个用户语句(例如,操作906)。
如果目标账户不在会话池中,则可以在操作926处为目标账户创建新的远程会话,如本文所述。在操作928处,“会话_池[目标]”寄存器然后可以被设置为新创建的远程会话,然后方法900可以前进到操作924。
如果该语句不包括使用账户请求的请求(操作916),则在操作930处,源部署可以检查该语句是否包括更改登录会话的请求、即“更改会话(ALTER SESSION)”。在操作932处,如果该语句包括更改登录会话的请求,则可以创建本地执行任务来执行更改会话请求。在操作934处,可以为会话中的每个活动的远程会话创建代理任务,以便基于更改会话请求修改所有活跃的远程会话。
如果该语句不包括更改会话请求,则源部署然后可以确定该请求是用于任务的执行,那么登录会话可以通过在操作936处检查“登录_会话.远程_会话”的值来检查该任务是用于登录会话还是用于远程会话。如果该寄存器为空值(例如,该任务是用于登录会话的),则可以在操作938处为该语句创建本地执行任务。如果寄存器不是空值,则可以在操作940处为所识别的远程会话创建代理任务。然后,方法900可以移动到下一个用户语句(例如,操作906)。
图10示出了根据示例实施例的计算机系统形式的机器1000的图解表示,在该计算机系统形式的机器1000内可以执行指令集以使机器1000执行本文所讨论方法中的任何一种或更多种方法。具体地,图10以计算机系统的示例形式示出了机器1000的图解表示,用于使机器1000执行本文所讨论方法中的任何一种或更多种方法的指令1016(例如,软件、程序、应用、小程序、app、或其他可执行代码)可以在该计算机系统内执行。例如,指令1016可以使机器1000执行本文描述的任何一个或更多个操作。作为另一个示例,指令1016可以使机器1000实现本文描述的数据流动的部分。以这种方式,指令1016将通用的、未编程的机器转换成特定的机器1000(例如,远程计算设备106、访问管理系统110、计算服务管理器112、执行平台114、访问管理系统118、web代理120、远程计算设备106),该特定的机器1000被特别配置成以本文描述的方式执行所描述和示出的功能中的任何一个。
在替代实施例中,机器1000作为独立的设备操作或者可以耦合(例如,联网)到其它机器。在联网部署中,机器1000可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份来操作,或者作为对等(或分布式)网络环境中的对等机器来操作。机器1000可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本(netbook)、智能电话、移动设备、网络路由器、网络交换机、网络桥接器(networkbridge)或能够顺序地或以其它方式执行指令1016的任何机器,指令1016指定要由机器1000采取的动作。此外,虽然仅示出了单个机器1000,但术语“机器”还应被理解为包括单独或联合地执行指令1016以执行本文所讨论方法中的任何一种或更多种方法的机器1000的集合。
机器1000包括处理器1010、存储器1030和输入/输出(I/O)部件1050,它们被配置成例如经由总线1002彼此通信。在示例实施例中,处理器1010(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另一处理器或其任何合适的组合)可以包括例如可以执行指令1016的处理器1012和处理器1014。术语“处理器”旨在包括多核处理器1010,多核处理器1010可以包括可以同时执行指令1016的两个或更多个独立处理器(有时称为“核”)。尽管图10示出了多个处理器1010,但是机器1000可以包括具有单核的单个处理器、具有多核的单个处理器(例如,多核处理器)、具有单核的多个处理器、具有多核的多个处理器或者它们的任意组合。
存储器1030可以包括主存储器1032、静态存储器1034和存储单元1036,它们都可以由处理器1010例如经由总线1002访问。主存储器1032、静态存储器1034和存储单元1036存储指令1016,指令1016体现本文描述的方法或功能中的任何一种或更多种。在由机器1000执行期间,指令1016也可以全部或部分地驻留在主存储器1032内、静态存储器1034内、存储单元1036内、至少一个处理器1010内(例如,在处理器的高速缓存存储器内)或其任何合适的组合。
I/O部件1050包括用于接收输入、提供输出、产生输出、传输信息、交换信息、捕获测量值等的部件。包括在特定机器1000中的具体的I/O部件1050将取决于机器的类型。例如,诸如移动电话的便携式机器将有可能包括触摸输入设备或其他这样的输入机构,而无头服务器机器将不太可能包括这样的触摸输入设备。将认识到的是,I/O部件1050可以包括图10中未示出的许多其他部件。I/O部件1050根据功能进行分组仅仅是为了简化下面的讨论,并且该分组决不是限制性的。在各种示例实施例中,I/O部件1050可以包括输出部件1052和输入部件1054。输出部件1052可以包括视觉部件(例如,诸如等离子体显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT)的显示器)、声学部件(例如,扬声器)、其他信号发生器等。输入部件1054可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于指向的输入部件(例如,鼠标、触控板、轨迹球、操纵杆、运动传感器或另一指向仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸手势的定位和/或力的触摸屏或其他触觉输入部件)、音频输入部件(例如,麦克风)等。
通信可以使用多种技术来实现。I/O部件1050可以包括通信部件1064,通信部件1064可操作来分别经由耦合1082和耦合1072将机器1000耦合到网络1080或设备1070。例如,通信部件1064可以包括网络接口部件或与网络1080对接的另一合适的设备。在进一步的示例中,通信部件1064可以包括有线通信部件、无线通信部件、蜂窝通信部件、和经由其他模态提供通信的其他通信部件。设备1070可以是另一台机器或多种外围设备中的任一种(例如,经由通用串行总线(USB)耦合的外围设备)。例如,如上所述,机器1000可以对应于远程计算设备106、访问管理系统110、计算服务管理器112、执行平台114、访问管理系统118、web代理120中的任何一个,并且设备1070可以包括这些系统和设备中的任何其他系统和设备。
各种存储器(例如,1030、1032、1034和/或处理器1010和/或存储单元1036的存储器)可以存储指令1016和数据结构(例如,软件)的一个或更多个集合,这些指令1016和数据结构体现本文所描述方法或功能中的任何一种或更多种或被本文所描述方法或功能中的任何一种或更多种所利用。当由处理器1010执行时,这些指令1016使各种操作实现所公开的实施例。
如本文所使用的,术语“机器存储介质”、“设备存储介质”和“计算机存储介质”意思相同,并且可以在本公开中互换使用。这些术语指的是存储可执行指令和/或数据的单个或多个存储设备和/或介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。相应地,这些术语应当被认为包括但不限于固态存储器以及光介质和磁介质,包括在处理器内部或外部的存储器。机器存储介质、计算机存储介质和/或设备存储介质的具体示例包括非易失性存储器,非易失性存储器包括例如:半导体存储器设备,诸如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、现场可编程门阵列(FPGA)和闪存设备;磁盘,例如内部硬盘和可移除磁盘;磁光盘;以及CD-ROM和DVD-ROM光盘。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”具体排除了载波、经调制的数据信号和其他这样的介质(其中的至少一些包含在下面讨论的术语“信号介质”中)。
在各种示例实施例中,网络1080的一个或更多个部分可以是自组织网络(ad hocnetwork)、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网、互联网的一部分、公共交换电话网络(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、
Figure BDA0004113749500000231
网络、另一种类型的网络、或两种或更多种这样的网络的组合。例如,网络1080或网络1080的一部分可以包括无线或蜂窝网络,并且耦合1082可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或另一种类型的蜂窝或无线耦合。在该示例中,耦合1082可以实现多种类型的数据传输技术中的任何一种,例如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电服务(GPRS)技术、增强型数据速率GSM演进(EDGE)技术、包括3G、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准的第三代合作伙伴计划(3GPP)、由各种标准设置组织定义的其他技术、其他长程协议、或其他数据传输技术。
指令1016可以使用传输介质经由网络接口设备(例如,包括在通信部件1064中的网络接口部件)并利用多种众所周知的传输协议(例如,超文本传输协议(HTTP))中的任何一种在网络1080上传输或接收。类似地,指令1016可以使用传输介质经由耦合1072(例如,对等耦合)被传输或接收到设备1070。术语“传输介质”和“信号介质”意思相同,并且在本公开中可以互换使用。术语“传输介质”和“信号介质”应被理解为包括能够存储、编码或携带用于由机器1000执行的指令1016的任何无形介质,并且包括数字或模拟通信信号或便于这样的软件的通信的其他无形介质。因此,术语“传输介质”和“信号介质”应被理解为包括任何形式的经调制的数据信号、载波等。术语“经调制的数据信号”意指这样的信号:其具有以对信号中的信息进行编码的这样的方式设置或更改的其特性中的一个或更多个特性。
术语“机器可读介质”、“计算机可读介质”和“设备可读介质”意思相同,并且在本公开中可以互换使用。这些术语被定义为包括机器存储介质和传输介质。因此,这些术语包括存储设备/介质和载波/经调制的数据信号。
本文描述的示例方法的各种操作可以至少部分地由被临时配置(例如,通过软件)或永久配置为执行相关操作的一个或更多个处理器来执行。类似地,本文描述的方法可以至少部分是处理器实现的。例如,本文描述的方法的至少一些操作可以由一个或更多个处理器执行。某些操作的执行可以在一个或更多个处理器之间分配,该一个或更多个处理器不仅驻留在单个机器内,而且跨多个机器部署。在一些示例实施例中,一个或更多个处理器可以位于单个位置中(例如,在家庭环境、办公室环境或服务器场内),而在其他实施例中,处理器可以跨多个位置分布。
尽管参考具体的示例实施例描述了本公开的实施例,但显然地,在不偏离本发明主题的更广泛范围的情况下,可以对这些实施例做出各种修改和改变。因此,说明书和附图被认为是说明性的而不是限制性的。形成本申请的一部分的附图通过说明而非限制的方式显示了其中可以实施主题的具体实施例。所示出的实施例以充分的细节被描述,以使本领域的技术人员能够实施本文公开的教导。可以使用其他实施例和从其中衍生的实施例,使得可以做出结构或逻辑的替换和改变而不偏离本公开的范围。因此,此详细描述不应被理解为限制性意义,并且各种实施例的范围仅由所附权利要求连同这些权利要求所享有的完整范围的等同物一起限定。
本发明主题的这样的实施例可以在本文中单独地和/或共同地由术语“发明”提到,这仅仅是为了便利,并不意图自愿将本申请的范围局限于任何单一发明或发明构思(如果实际上公开了多于一种发明或发明构思的话)。因此,虽然本文中已经说明和描述了特定实施例,但是应当理解,可以用经计算以实现相同目的的任何布置来替换所示出的特定实施例。本公开意图涵盖各种实施例的任何和所有改编或变型。在阅读以上描述后,以上实施例的组合以及本文未具体描述的其他实施例对于本领域的技术人员来说将是明显的。
在本文档中,术语“一个(a)”或“一个(an)”,如专利文档中常见的那样,用于包括一个或多于一个,与“至少一个”或“一个或更多个”的任何其他实例或用法无关。在本文档中,术语“或”用于指非排他性的或,因此除非另有说明,否则“A或B”包括“A但不包括B”、“B但不包括A”和“A和B”。在所附权利要求中,术语“包括(including)”和“其中(in which)”被用作相应术语“包括(comprising)”和“其中(wherein)”的纯英语等效词。此外,在所附权利要求中,术语“包括(including)”和“包括(comprising)”是开放式的;也就是说,包括除了权利要求中在这样的术语之后列出的那些元素之外的元素的系统、设备、物品或过程仍然被认为落入该权利要求的范围内。
以下编号的示例是实施例:
示例1.一种方法,包括:由一个或更多个处理器接收对于全局身份的登录信息;基于该登录信息,认证全局身份;建立提供对多个账户的访问权的登录会话;根据登录会话,使用来自多个账户中的第一账户执行第一任务;以及根据登录会话,使用来自多个账户中的第二账户执行第二任务。
示例2.根据示例1的方法,其中,登录会话提供对多个账户的访问权而无需进一步的认证。
示例3.根据示例1-2中任一项的方法,其中,使用第一账户执行第一任务包括:用与第一账户相关联的部署建立远程会话;向与第一账户相关联的部署发送执行第一任务的请求,其中该任务在远程会话中被执行,生成结果;以及接收结果。
示例4.根据示例1-3中任一项的方法,还包括:为远程会话创建代理用户,该代理用户与全局身份相关联。
示例5.根据示例1-4中任一项的方法,还包括:用与第二账户相关联的部署建立第二远程会话;向与第二账户相关联的部署发送执行第二任务的第二请求,其中该任务在第二远程会话中被执行,生成第二结果;以及接收第二结果。
示例6.根据示例1-5中任一项的方法,还包括:并行地提供活跃的远程会话的会话池,允许全局身份在活跃的远程会话之间进行切换。
示例7.根据示例1-6中任一项的方法,其中,多个账户是基于与账户类型相关的策略规则来选择的。
示例8.根据示例1-7中任一项的方法,其中,第一账户与第一部署相关联,并且第二账户与第二部署相关联。
示例9.根据示例1-8中任一项的方法,还包括:创建与登录会话相关联的表;并响应于登录会话被终止,删除表。
示例10.一种系统,包括:机器的一个或更多个处理器;以及存储指令的存储器,该指令在被一个或更多个处理器执行时使机器执行实现示例方法1至9中任一项的操作。
示例11.一种体现指令的机器可读存储设备,该指令在被机器执行时使机器执行实现示例方法1至9中任一项的操作。

Claims (27)

1.一种方法,包括:
由一个或更多个处理器接收对于全局身份的登录信息;
基于所述登录信息,认证所述全局身份;
建立提供对多个账户的访问权的登录会话;
根据所述登录会话,使用来自所述多个账户中的第一账户执行第一任务;以及
根据所述登录会话,使用来自所述多个账户中的第二账户执行第二任务。
2.根据权利要求1所述的方法,其中,所述登录会话提供对所述多个账户的访问权而无需进一步的认证。
3.根据权利要求1所述的方法,其中,使用所述第一账户执行所述第一任务包括:
用与所述第一账户相关联的部署建立远程会话;
向与所述第一账户相关联的所述部署发送执行所述第一任务的请求,其中所述任务在所述远程会话中被执行,生成结果;以及
接收所述结果。
4.根据权利要求3所述的方法,还包括:
为所述远程会话创建代理用户,所述代理用户与所述全局身份相关联。
5.根据权利要求3所述的方法,还包括:
用与所述第二账户相关联的部署建立第二远程会话;
向与所述第二账户相关联的所述部署发送执行所述第二任务的第二请求,其中所述任务在所述第二远程会话中被执行,生成第二结果;以及
接收所述第二结果。
6.根据权利要求1所述的方法,还包括:
并行地提供活跃的远程会话的会话池,允许所述全局身份在所述活跃的远程会话之间进行切换。
7.根据权利要求1所述的方法,其中,所述多个账户是基于与账户类型相关的策略规则来选择的。
8.根据权利要求1所述的方法,其中,所述第一账户与第一部署相关联,并且所述第二账户与第二部署相关联。
9.根据权利要求1所述的方法,还包括:
创建与所述登录会话相关联的表;以及
响应于所述登录会话被终止,删除所述表。
10.一种包含指令的机器存储介质,所述指令在被机器执行时使所述机器执行包括以下项的操作:
由一个或更多个处理器接收对于全局身份的登录信息;
基于所述登录信息,认证所述全局身份;
建立提供对多个账户的访问权的登录会话;
根据所述登录会话,使用来自所述多个账户中的第一账户执行第一任务;以及
根据所述登录会话,使用来自所述多个账户中的第二账户执行第二任务。
11.根据权利要求10所述的机器存储介质,其中,所述登录会话提供对所述多个账户的访问权而无需进一步的认证。
12.根据权利要求10所述的机器存储介质,其中,使用所述第一账户执行所述第一任务包括:
用与所述第一账户相关联的部署建立远程会话;
向与所述第一账户相关联的所述部署发送执行所述第一任务的请求,其中所述任务在所述远程会话中被执行,生成结果;以及
接收所述结果。
13.根据权利要求12所述的机器存储介质,还包括:
为所述远程会话创建代理用户,所述代理用户与所述全局身份相关联。
14.根据权利要求12所述的机器存储介质,还包括:
用与所述第二账户相关联的部署建立第二远程会话;
向与所述第二账户相关联的所述部署发送执行所述第二任务的第二请求,其中所述任务在所述第二远程会话中被执行,生成第二结果;以及
接收所述第二结果。
15.根据权利要求10所述的机器存储介质,还包括:
并行地提供活跃的远程会话的会话池,允许所述全局身份在所述活跃的远程会话之间进行切换。
16.根据权利要求10所述的机器存储介质,其中,所述多个账户是基于与账户类型相关的策略规则来选择的。
17.根据权利要求10所述的机器存储介质,其中,所述第一账户与第一部署相关联,并且所述第二账户与第二部署相关联。
18.根据权利要求10所述的机器存储介质,还包括:
创建与所述登录会话相关联的表;以及
响应于所述登录会话被终止,删除所述表。
19.一种系统,包括:
机器的一个或更多个处理器;以及
存储指令的存储器,所述指令在被所述一个或更多个处理器执行时使所述机器执行包括以下项的操作:
由一个或更多个处理器接收对于全局身份的登录信息;
基于所述登录信息,认证所述全局身份;
建立提供对多个账户的访问权的登录会话;
根据所述登录会话,使用来自所述多个账户中的第一账户执行第一任务;以及
根据所述登录会话,使用来自所述多个账户中的第二账户执行第二任务。
20.根据权利要求19所述的系统,其中,所述登录会话提供对所述多个账户的访问权而无需进一步的认证。
21.根据权利要求19所述的系统,其中,使用所述第一账户执行所述第一任务包括:
用与所述第一账户相关联的部署建立远程会话;
向与所述第一账户相关联的所述部署发送执行所述第一任务的请求,其中所述任务在所述远程会话中被执行,生成结果;以及
接收所述结果。
22.根据权利要求21所述的系统,所述操作还包括:
为所述远程会话创建代理用户,所述代理用户与所述全局身份相关联。
23.根据权利要求21所述的系统,所述操作还包括:
用与所述第二账户的部署建立第二远程会话;
向与所述第二账户相关联的所述部署发送执行所述第二任务的第二请求,其中所述任务在所述第二远程会话中被执行,生成第二结果;以及
接收所述第二结果。
24.根据权利要求19所述的系统,所述操作还包括:
并行地提供活跃的远程会话的会话池,允许所述全局身份在所述活跃的远程会话之间进行切换。
25.根据权利要求19所述的系统,其中,所述多个账户是基于与账户类型相关的策略规则来选择的。
26.根据权利要求19所述的系统,其中,所述第一账户与第一部署相关联,并且所述第二账户与第二部署相关联。
27.根据权利要求19所述的系统,所述操作还包括:
创建与所述登录会话相关联的表;以及
响应于所述登录会话被终止,删除所述表。
CN202180060290.7A 2020-07-17 2021-06-30 使用全局身份的远程执行 Pending CN116158058A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/931,808 2020-07-17
US16/931,808 US11057491B1 (en) 2020-07-17 2020-07-17 Remote execution using a global identity
PCT/US2021/039811 WO2022015508A1 (en) 2020-07-17 2021-06-30 Remote execution using a global identity

Publications (1)

Publication Number Publication Date
CN116158058A true CN116158058A (zh) 2023-05-23

Family

ID=76658184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180060290.7A Pending CN116158058A (zh) 2020-07-17 2021-06-30 使用全局身份的远程执行

Country Status (4)

Country Link
US (5) US11057491B1 (zh)
EP (1) EP4182819A4 (zh)
CN (1) CN116158058A (zh)
WO (1) WO2022015508A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11057491B1 (en) 2020-07-17 2021-07-06 Snowflake Inc. Remote execution using a global identity
US20220141658A1 (en) * 2020-11-05 2022-05-05 Visa International Service Association One-time wireless authentication of an internet-of-things device
US20230259497A1 (en) * 2022-02-16 2023-08-17 Sandeep Shantharaj Method for managing a plurality of accounts in a multi-account database system
CN115622752B (zh) * 2022-09-28 2024-05-14 苏州浪潮智能科技有限公司 会话管理方法、装置、电子设备和存储介质

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110238737A1 (en) * 2010-03-26 2011-09-29 Nec Laboratories America, Inc. Decentralized cloud storage
EP2249300A1 (en) * 2010-06-08 2010-11-10 Pay & Save N.V. Method and system for providing universal access to a service amongst a plurality of services
US9560036B2 (en) * 2010-07-08 2017-01-31 International Business Machines Corporation Cross-protocol federated single sign-on (F-SSO) for cloud enablement
US8886590B2 (en) * 2011-03-22 2014-11-11 Sap Ag Master data management in a data warehouse/data mart
US8661062B1 (en) * 2011-09-28 2014-02-25 Emc Corporation Managing analysis of activity data
US9129278B2 (en) * 2012-03-30 2015-09-08 Intuit Inc. Pre-allocating merchant ID in a credit card processor entity system by a master merchant
US9071613B2 (en) * 2012-04-06 2015-06-30 International Business Machines Corporation Dynamic allocation of workload deployment units across a plurality of clouds
US9274843B2 (en) * 2012-09-14 2016-03-01 Ca, Inc. Multi-redundant switchable process pooling for cloud it services delivery
US9369456B2 (en) * 2012-09-21 2016-06-14 Intuit Inc. Single sign-on in multi-tenant environments
CN105447604B (zh) * 2014-08-04 2020-01-21 阿里巴巴集团控股有限公司 一种账户处理方法及装置
US10250584B2 (en) * 2014-10-15 2019-04-02 Zuora, Inc. System and method for single sign-on technical support access to tenant accounts and data in a multi-tenant platform
US10230571B2 (en) * 2014-10-30 2019-03-12 Equinix, Inc. Microservice-based application development framework
US9967196B2 (en) * 2014-11-17 2018-05-08 Software Ag Systems and/or methods for resource use limitation in a cloud environment
US9866545B2 (en) * 2015-06-02 2018-01-09 ALTR Solutions, Inc. Credential-free user login to remotely executed applications
JP6582740B2 (ja) * 2015-08-26 2019-10-02 株式会社リコー 情報処理システム、サーバ装置、及びプログラム
US10432644B2 (en) * 2015-09-28 2019-10-01 Box, Inc. Access control system for enterprise cloud storage
US10341410B2 (en) * 2016-05-11 2019-07-02 Oracle International Corporation Security tokens for a multi-tenant identity and data security management cloud service
US9781122B1 (en) * 2016-05-11 2017-10-03 Oracle International Corporation Multi-tenant identity and data security management cloud service
US9838377B1 (en) * 2016-05-11 2017-12-05 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service
US10462219B2 (en) * 2016-08-10 2019-10-29 Iboss, Inc. Distributed network security system providing isolation of customer data
US10846390B2 (en) * 2016-09-14 2020-11-24 Oracle International Corporation Single sign-on functionality for a multi-tenant identity and data security management cloud service
US10594684B2 (en) * 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
US10587700B2 (en) * 2016-09-16 2020-03-10 Oracle International Corporation Cloud operation reservation system
US10326864B2 (en) * 2017-02-15 2019-06-18 Sap Se Dynamic orchestration of microservices
US10831789B2 (en) * 2017-09-27 2020-11-10 Oracle International Corporation Reference attribute query processing for a multi-tenant cloud service
US10715458B1 (en) * 2017-12-08 2020-07-14 Amazon Technologies, Inc. Organization level identity management
US10931656B2 (en) * 2018-03-27 2021-02-23 Oracle International Corporation Cross-region trust for a multi-tenant identity cloud service
US11258775B2 (en) * 2018-04-04 2022-02-22 Oracle International Corporation Local write for a multi-tenant identity cloud service
US10992657B1 (en) * 2018-04-30 2021-04-27 Amazon Technologies, Inc. Multi-account entity based access control
US10742506B2 (en) * 2018-05-29 2020-08-11 University-Industry Cooperation Group Of Kyung-Hee University Policy-based storage service federation method and apparatus
DE112019005604T5 (de) * 2018-11-08 2021-09-09 Intel Corporation Function-as-a-service-system-verbesserungen (faas-system-verbesserungen)
US11558387B2 (en) * 2019-02-13 2023-01-17 International Business Machines Corporation Validation of approver identifiers in a cloud computing environment
EP3942745A4 (en) * 2019-03-21 2022-11-09 Citrix Systems, Inc. NOTIFICATIONS FOR MULTI-DEVICE WORKPLACE
US11102328B2 (en) * 2019-05-09 2021-08-24 Sap Se Provisioning multi-tenant, microservice architecture-based integration service in a cloud computing environment
US11599623B2 (en) * 2019-12-03 2023-03-07 Aetna Inc. Global identity for use in a hybrid cloud network architecture
US10719517B1 (en) * 2019-12-18 2020-07-21 Snowflake Inc. Distributed metadata-based cluster computing
US10860381B1 (en) * 2020-05-14 2020-12-08 Snowflake Inc. Flexible computing
US11057491B1 (en) 2020-07-17 2021-07-06 Snowflake Inc. Remote execution using a global identity
US11270020B1 (en) * 2021-09-28 2022-03-08 Snowflake Inc. Privilege based access checks for query results

Also Published As

Publication number Publication date
US20220021746A1 (en) 2022-01-20
EP4182819A1 (en) 2023-05-24
US20220256004A1 (en) 2022-08-11
US11349952B2 (en) 2022-05-31
EP4182819A4 (en) 2024-07-03
US11570259B2 (en) 2023-01-31
US11057491B1 (en) 2021-07-06
US20240064210A1 (en) 2024-02-22
US11838373B2 (en) 2023-12-05
WO2022015508A1 (en) 2022-01-20
US20230141984A1 (en) 2023-05-11

Similar Documents

Publication Publication Date Title
US11349952B2 (en) Remote execution using a global identity
CN113672359B (zh) 柔性计算
US11681583B2 (en) Cluster diagnostics data for distributed job execution
US11507685B1 (en) Privilege based access checks for query results
US11461080B1 (en) Inline compilation of user defined functions
US11544401B2 (en) Sharing cloud data with an application
US20230344796A1 (en) Secure message exchange between deployments
US11736483B2 (en) Accessing external resources using remotely stored credentials
WO2023244972A1 (en) Unstructured file replication staged between database deployments
US11487870B1 (en) Logging from user-defined functions
CN117441162A (zh) 数据库中的存储过程
US11973748B1 (en) Token-based secure database query result sharing
US12032685B2 (en) Logging from user-defined functions

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Country or region after: U.S.A.

Address after: Montana

Applicant after: Snowflake Co.

Address before: Montana

Applicant before: SNOWFLAKE COMPUTING Inc.

Country or region before: U.S.A.