首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用户、角色和权限

用户、角色和权限InterSystems IRIS®具有系统级安全性,以及一组与sql相关的额外安全性特性。 在数据库级保护之外,InterSystems SQL安全性提供了额外级别的安全功能。...%Display()}架构形式的用户名在某些情况下,用户名可以隐式用作SQL模式名称。如果用户名包含SQL标识符中禁止的字符,这可能会带来问题。例如,在多域配置中,用户名包含“@”字符。...这有两个原因:与检查单个用户条目相比,SQL引擎通过检查相对较小的角色数据库来确定权限级别的效率要高得多。与具有多个单独用户设置的系统相比,使用少量角色集管理系统要容易得多。...列级对象权限仅提供对表或视图的指定列中的数据的访问权。不需要为具有系统定义的值(如RowID和Identity)的列分配列级权限。存储过程对象权限允许将过程的EXECUTE权限分配给指定的用户或角色。...审核权限错误当InterSystems IRIS进程调用用户没有特权的SQL语句时,操作将失败,并生成SQLCODE-99错误。

2.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SQL命令 INSERT(一)

    如果指定列列表,则各个值必须在位置上与列列表中的列名相对应。 值赋值语法 插入记录时,可以通过多种方式为指定列赋值。默认情况下,所有未指定的列必须接受NULL或具有定义的默认值。...例如,如果持久类具有引用包含特性Street、City和Country(按顺序)的序列对象的特性PAddress,则插入set PAddress=$LISTBUILD(‘123 Main St.’...%List必须包含串行对象属性(或占位符逗号)的值,其顺序与这些属性在串行对象中指定的顺序相同。 此类型的插入可能不会执行%SerialObject属性值的验证。...例如,如果持久类具有引用包含特性Street、City和Country的序列对象的特性PAddress,则插入set PAddress_City=‘Newtown’,PAddress_Street=‘123...特殊变量 可以在列中插入以下特殊变量的值: %TABLENAME或%CLASSNAME伪字段变量关键字。%TABLENAME返回当前表名。%CLASSNAME返回与当前表对应的类名。

    6K20

    SQL命令 SELECT(一)

    它可能作为选择项列出,也可能不作为选择项列出。 可选—ALL关键字指定返回满足SELECT条件的所有行。 这是SQL的默认值。 ALL关键字不执行任何操作; 它是为了SQL兼容性而提供的。...如果没有指定ORDER BY子句,则返回记录的顺序是不可预测的。 ORDER BY子句可以包含窗口函数。...权限 要在一个或多个表上执行SELECT查询,必须对所有指定的选择项列具有列级SELECT权限,或者对指定的表引用表或视图具有表级SELECT权限。...这些条件由逻辑操作符链接的一个或多个谓词指定; WHERE子句返回满足这些谓词条件的所有记录。 WHERE子句谓词不能包含聚合函数。 GROUP BY子句,它指定以逗号分隔的列列表。...它们将查询结果集组织为具有匹配一个或多个列值的子集,并确定返回行的顺序。 groupby允许标量表达式和列。 HAVING子句,指定行必须匹配的布尔谓词条件。

    5.3K10

    SQL定义表(一)

    _(下划线),@,#,$ characters:如果表名包含这些字符中的任何一个,这些字符将从对应的类名中剥离出来,并生成一个唯一的持久类名。...默认情况下,只有当持久化类被投影到SQL表时,它的存在才可见。 在这个投影表中,将出现一个额外的RowID字段。 默认情况下,这个字段被命名为“ID”,并分配给第1列。...(这是分配给记录的最高整数,而不是分配给进程的最高整数。)请注意,此RowID计数器值可能不再与现有记录相对应。要确定是否存在具有特定RowID值的记录,请调用表的%ExistsId()方法。...基于字段的RowID通过定义一个用于投影表的持久类,可以定义RowID以具有字段或字段组合中的值。为此,请使用IdKey index关键字指定一个索引。...可以通过指定类关键字SqlRowIdPrivate来定义具有隐藏且为PRIVATE的RowID的持久类。用作外键引用的RowID必须是公共的。

    1.3K10

    SQL命令 CREATE VIEW(一)

    要从正在创建的视图的SELECT子句中引用的对象中进行选择,需要具有适当的权限: 使用动态SQL或xDBC创建视图时,必须对从视图引用的基础表(或视图)中选择的所有列具有SELECT权限。...如果省略了列逗号,下面的应用程序: 选择源表的列名用于在使用视图时访问和显示数据。 如果任何选择源表列名具有列别名,则列别名是使用视图时用于访问和显示数据的名称。...它们可以是与选择列名不同的名称、与选择列名相同的名称或两者的组合。视图列名的指定顺序与选择列名的顺序相对应。由于可以为视图列分配不相关的选择列的名称,因此在分配视图列名称时必须格外小心。...如果从视图类投影SQL视图,而视图类的查询包含ORDER BY子句,则在视图投影中将忽略ORDER BY子句。 不能包含主机变量。...不能包含INTO关键字。可以创建使用INTO子句指定SELECT的视图,但该视图的执行失败,并出现SQLCODE-25错误。 CREATE VIEW可以包含UNION语句,以从两个表的联合中选择列。

    6.4K21

    SQL命令 CREATE TABLE(二)

    与标准的 IRIS表一样,ClassType=Persistent,并且类包含Final关键字,表示它不能有子类。 无论哪个进程创建临时表,临时表的所有者都会自动设置为_PUBLIC。...全局临时表的表定义与基表相同。全局临时表必须具有唯一的名称;尝试为其提供与现有基表相同的名称会导致SQLCODE-201错误。该表将一直存在,直到显式删除(使用DROP TABLE)。...SQL提供了一个%DESCRIPTION关键字,可以使用该关键字为记录表或字段提供描述。%DESCRIPTION后面跟着用单引号括起来的文本字符串。...%FILE关键字,该关键字用于提供记录表的文件名。...一个表定义只能有一个%FILE关键字; 指定多个会产生SQLCODE -83错误。 SQL提供了可选的%EXTENTSIZE和%NUMROWS关键字,它们用于存储一个整数,记录该表中预期的行数。

    74720

    SQL JOIN 子句:合并多个表中相关行的完整指南

    然后,我们可以创建以下SQL语句(包含INNER JOIN),选择在两个表中具有匹配值的记录: 示例 SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate...JOIN 以下是SQL中不同类型的JOIN: (INNER) JOIN:返回在两个表中具有匹配值的记录 LEFT (OUTER) JOIN:返回左表中的所有记录以及右表中匹配的记录 RIGHT (OUTER...希望这能帮助你理解SQL中JOIN的概念。如果有其他问题,请随时告诉我。 SQL INNER JOIN INNER JOIN关键字选择在两个表中具有匹配值的记录。...语句中指定列时,最好在列名前包含表名。...SQL LEFT JOIN关键字 SQL LEFT JOIN关键字返回左表(table1)中的所有记录以及右表(table2)中的匹配记录。如果没有匹配,则右侧的结果为0条记录。

    47310

    SQL命令 UPDATE(一)

    如果在这里指定两个选择表之间的ANSI连接关键字, IRIS将执行指定的连接操作。 可以选择指定一个或多个优化选项关键字来优化查询执行。...WHERE CURRENT OF cursor - 可选:仅嵌入SQL—指定UPDATE操作更新游标当前位置的记录。...如果插入请求失败由于违反唯一键(字段(s)的一些独特的关键,存在这一行已经有相同的值(s)为插入指定的行),然后它会自动变成一个更新请求这一行,并插入或更新使用指定的字段值来更新现有的行。...列名和值: 更新不能包含重复的字段名。 尝试指定两个具有相同名称的字段的更新将导致SQLCODE -377错误。 不能更新已被另一个并发进程锁定的字段。...唯一的例外是将SERIAL (%Library.Counter)字段添加到具有现有数据的表时。 对于这个添加的计数器字段,现有的记录将具有NULL值。

    2.9K20

    冻结计划

    对冻结计划执行此检查冻结测试后: 如果选中解冻计划不同框,则列出新计划的SQL语句列包含“1”。这表明解冻计划将导致不同的计划。 如果未选中解冻计划不同框,则列出新计划的SQL语句列将包含“0”。...此扫描检查所有冻结的计划: 如果冻结的计划具有与当前版本相同的InterSystems软件版本,InterSystems IRIS®Data Platform将计算两个计划的引用表和时间戳的散列,以创建可能已更改的内部计划列表...如果冻结的计划具有与当前版本相同的InterSystems IRIS版本,并且两个计划的逐字符串比较完全匹配,则它会将列出新计划的SQL语句列中的SQL语句标记为“0”。...相反,系统会创建一个新的查询计划,该计划将在给定当前定义的情况下工作,并执行查询。此查询计划被分配了与前一个查询计划相同的缓存查询类名。...%NOFPLAN关键字 可以使用%NOFPLAN关键字覆盖冻结的计划。包含%NOFPLAN关键字的SQL语句将生成新的查询计划。冻结的计划将保留,但不会使用。

    1.9K10

    这是我见过最有用的Mysql面试题,面试了无数公司总结的(内附答案)

    记录(也称为数据行)是表中相关数据的有序集合。 6.什么是表中的列? 列是表中的垂直实体,包含与表中特定细分关联的所有信息。 7.什么是DBMS?...可以在一个列或一组列上创建索引。 18.所有不同类型的索引是什么? 索引有三种类型 1.唯一索引:唯一索引通过确保表中没有两行数据具有相同的键值来帮助维护数据完整性。...一个PRIMARY KEY 约束唯一标识数据库表中的记录。 参与主键约束的所有列均不得包含NULL值。 40.一个表可以包含多个PRIMARY KEY吗?...甲NULL值是从零值或包含空格的字段不同。 具有NULL值的字段是在记录创建过程中留为空白的字段。...SELECT * FROM Table1UNION ALLSELECT * FROM Table2 输出:共20条记录 两个表中所有列的数据类型应相同。 66.

    27.1K20

    T-SQL进阶:超越基础 Level 2:编写子查询

    Transact-SQL语句中有许多不同的地方,需要一个子查询来返回单个列值,例如在选择列表中WHERE子句等。...为了演示如何在选择列表中使用子查询,我们假设我们必须从具有以下业务需求的SELECT语句生成一个结果集: 返回所有Sales.SalesOrderHeader记录有什么有OrderDate等于“2007...使用具有IN关键字的子查询的示例 您可以编写一个返回列的多个值的子查询的地方是当您的子查询生成与IN关键字一起使用的记录集时。 清单9中的代码演示了如何使用子查询将值传递给IN关键字。...,那么您可能已经在此语句中运行 包含子查询的语句的性能: “在Transact-SQL中,包含子查询的语句和不具有语义相似的版本的语句通常没有性能差异。...SQL Server优化器非常聪明,很可能为两个等效查询计算相同的执行计划。如果包含子查询的查询的执行计划和没有子查询的查询的执行计划最终都具有相同的执行计划,则两个查询将具有相同的性能。

    6K10

    MySQL中的GROUP BY和DISTINCT:去重的效果与用法解析

    为了达到这个目的,我们通常会使用GROUP BY和DISTINCT这两个关键字。虽然它们都可以用于去重,但是它们具有不同的用法和效果。...一、GROUP BY的用法及效果GROUP BY关键字用于将结果集按照一个或多个列进行分组,并对每个组应用聚合函数。...例如,我们有一个存储了学生信息的表格,包含了学生姓名(name)和所在城市(city)两列。现在我们希望按照城市对学生进行分组,并计算每个城市的学生人数。...执行该代码后,我们将获得一个结果集,其中包含每个城市以及对应的学生人数。GROUP BY的效果是将结果集中的行按照指定的列进行分组,并对每个组应用聚合函数。...可以使用以下的SQL语句来实现:SELECT DISTINCT cityFROM students;上述代码中,通过SELECT DISTINCT city,我们将从students表格中选择并返回所有不重复的城市名

    6.1K50

    SQL命令 CREATE TABLE(四)

    约束名称可以是任何有效的标识符; 如果指定为分隔符,则约束名可以包含".", "^", ",", "->"字符。 ALTER TABLE无法删除约束UNIQUE中列出的列。...RowID记录标识符 在 SQL 中,每条记录都由一个唯一的整数值标识,称为 RowID。在 SQL 中,不需要指定 RowID 字段。创建表并指定所需的数据字段时,会自动创建 RowID 字段。...默认情况下,它的存在仅在类投影到 SQL 表时可见。在这个投影的 SQL 表中,会出现一个额外的 RowID 字段。默认情况下,此字段命名为“ID”并分配给第 1 列。...IDENTITY标识字段 SQL自动为每个表创建一个RowID字段,其中包含一个系统生成的整数,作为唯一的记录id。...可选的IDENTITY关键字允许定义一个具有与RowID记录id字段相同属性的命名字段。 IDENTITY字段作为一个单字段IDKEY索引,其值是系统生成的唯一整数。

    1.4K20

    PostgreSQL中的查询简介

    PostgreSQL,通常缩写为“Postgres”,是一种具有面向对象方法的关系数据库管理系统,这意味着信息可以表示为PostgreSQL模式中的对象或类。...有时您可能正在使用具有相对较长或难以读取的名称的列或表的数据库。在这些情况下,您可以通过使用AS关键字创建别名来使这些名称更具可读性。...SQL语法包含许多函数,只允许您通过发出SELECT查询来解释或运行数据计算。这些被称为聚合函数。 COUNT函数计算并返回符合特定条件的行数。...这意味着它选择在两个表中具有匹配值的所有记录并将它们打印到结果集,而排除任何不匹配的记录。...请注意,当使用UNION从多个表查询多个列时,每个SELECT语句必须查询相同数量的列,相应的列必须具有相似的数据类型,并且每个SELECT语句中的列必须具有相同的顺序。

    12.4K52

    数据库复习笔记(全覆盖,包括往年部分真题)

    如,说明某个逻辑记录对应何种存储结构 数据库中模式/内模式映像是唯一的 该映像定义通常包含在模式描述中 保证数据的物理独立性...,即每一列中的分量是同一类型的数据,来自同一个域 关系中的元组(行)无先后顺序 关系中的属性(列)无先后顺序 在关系中的所有元组必须是独一无二的...白话: 看横行, 如果有两个横行相同, 只写一个. 因此若是S关系投影操作的话, 也就是有b和a 并(∪) 设R和S是n元关系,而且两者各对应属性的数据类型也相同。...除(/) 4.8什么叫“并兼容”的两个关系?哪些关系代数运算要求两个关系必须是“并兼容”的?什么叫“重复消除”? 两个关系有相同数量的属性,每对对应的属性有同样的值域; 并,交,差。...SQL语句用法,并复习实验4相关部分** (1)SQL SERVER的安全控制过程、安全控制模型 (2)SQL SERVER的身份验证模式 (3)SQL SERVER登录名的管理 (4)SQL

    1.2K20

    SQL命令 UPDATE(二)

    对于某些数据类型,还可以在ODBC或DISPLAY选择模式下以LOGICAL格式指定数据。 列表结构 IRIS支持列表结构数据类型%list(数据类型类%Library.List)。...可以使用CREATE TABLE ON UPDATE关键字短语来定义一个字段,当记录被更新时,该字段被设置为文字或系统变量(例如当前时间戳)。...例如,如果持久化类有一个属性PAddress引用一个串行对象包含属性,城市和国家(依次),SET PAddress=$LISTBUILD('123 Main St.'...FROM子句 UPDATE命令可能没有FROM关键字。它可以简单地指定要更新的表(或视图),并使用WHERE子句选择要更新的行。...%PROFILE或%PROFILE_ALL—如果指定了这些关键字指令中的一个,将生成SQLStats收集代码。 这与打开PTools时生成的代码相同。

    1.8K30

    SQL命令 CREATE TABLE(五)

    外键字段(CustomerNum)和引用字段(CustID)可以有不同的名称(或相同的名称),但必须具有相同的数据类型和字段约束。...如果表的类定义包含SqlRowIdName,可以将此值指定为显式的RowID。 如果定义了一个外键并省略了引用的字段名,外键的默认值如下: 为指定的表定义的主键字段。...可以定义引用以只读方式装载的数据库中的类的外键约束。要定义外键,用户必须对被引用的表或被引用的表的列具有REFERENCES特权。...表定义不应该有两个不同名称的外键,这两个外键引用相同的标识符-公共字段并执行相互矛盾的引用操作。...带有关键字的COSHARD子句和包含coshard表名的圆括号都是可选的。 定义的切片表必须具有显式指定的切片键(字段)。此分片键字段必须采用整数值;它应该与系统分配的协分片表的RowID值相匹配。

    1.8K50

    肝通宵写了三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富,建议收藏+三连好评!

    SELECT * FROM Customers WHERE City='Berlin'; 2-使用NOT关键字选择City不是”Berlin”的所有记录。...这意味着它按国家/地区排序,但如果某些行具有相同的国家/地区,则按 CustomerName 排序: SELECT * FROM Customers ORDER BY Country, CustomerName...VALUES (value1, value2, value3, ...); 2-如果要为表的所有列添加值,则无需在 SQL 查询中指定列名。但是,请确保值的顺序与表中的列顺序相同。...仅在指定列中插入数据 下面的 SQL 语句将插入一条新记录,但只在“CustomerName”、“City”和“Country”列中插入数据(CustomerID 会自动更新): INSERT INTO...JOIN内连接关键字 INNER JOIN关键字选择在两个表中具有匹配值的记录。

    9.9K20

    定义和构建索引(一)

    无论是使用SQL字段和表语法还是类属性语法定义相同的索引,都会创建相同的索引。当定义了某些类型的字段(属性)时,InterSystems IRIS会自动定义索引。...索引类型由两个索引类关键字Type和Extent定义。IRIS提供的索引类型包括:标准索引(Type = index)——一个持久数组,它将索引值与包含该值的行的 RowID相关联。...请注意,这些全局变量指定的是持久性类名(区分大小写),而不是SQL表名。如果USEEXTENTSET=0并指定了DEFAULTGLOBAL,则指定的全局名称将替换永久类名。...如果USEEXTENTSET=1并指定了DEFAULTGLOBAL,则使用DEFAULTGLOBAL名称,而不是散列的包名和类名。将追加连续的整数后缀。...对于SQL和默认存储,此主映射全局默认为^Package.classnameD,并记录命名空间以防止歧义。

    62510
    领券