nosql授权,noSQL是什么

SQL 授权,该怎么处理

SQL语言用GRANT语句向用户授予操作权限,GRANT语句的一般格式为:

连平网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。成都创新互联从2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联

GRANT 权限[,权限]...

[ON 对象类型 对象名]

TO 用户[,用户]...

[WITH GRANT OPTION];

其语义为:将对指定操作对象的指定操作权限授予指定的用户。

不同类型的操作对象有不同的操作权限,常见的操作权限如表3-4所示。

表3-4 不同对象类型允许的操作权限

对象 对象类型 操作权限

属性列 TABLE SELECT, INSERT, UPDATE, DELETE ALL PRIVIEGES

视图 TABLE SELECT, INSERT, UPDATE, DELETE ALL PRIVIEGES

基本表 TABLE SELECT, INSERT, UPDATE, ALTER, INDEX,DELETE ALL PRIVIEGES

数据库 DATABASE CREATETAB

详细信息…

接受权限的用户可以是一个或多个具体用户,也可以是PUBLIC即全体用户。

如果指定了WITH GRANT OPTION子句,则获得某种权限的用户还可以把这种权限再授予别的用户。如果没有指定WITH GRANT OPTION子句,则获得某种权限的用户只能使用该权限,但不能传播该权限。

例1

把查询Student表权限授给用户U1

GRANT SELECT ON TABLE Student TO U1;

例2

把对Student表和Course表的全部权限授予用户U2和U3

GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3;

例3

把对表SC的查询权限授予所有用户

GRANT SELECT ON TABLE SC TO PUBLIC;

例4

把查询Student表和修改学生学号的权限授给用户U4

详细信息…

这里实际上要授予U4用户的是对基本表Student的SELECT权限和对属性列Sno的UPDATE权限。授予关于属性列的权限时必须明确指出相应属性列名。完成本授权操作的SQL语句为:

GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;

例5

把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户

GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;

详细信息…

执行此SQL语句后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限,即由U5用户发上述GRANT命令给其他用户。

例如U5可以将此权限授予U6:

GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION;

同样,U6还可以将此权限授予U7:

GRANT INSERT ON TABLE SC TO U7;

因为U6未给U7传播的权限,因此U7不能再传播此权限。

例6

DBA把在数据库S_C中建立表的权限授予用户U8

GRANT CREATETAB ON DATABASE S_C TO U8;

进入SQL数据库提示未授权

sql语言用grant语句向用户授予操作权限,grant语句的一般格式为:

grant

权限[,权限]...

[on

对象类型

对象名]

to

用户[,用户]...

[with

grant

option];

其语义为:将对指定操作对象的指定操作权限授予指定的用户。

不同类型的操作对象有不同的操作权限,常见的操作权限如表3-4所示。

表3-4

不同对象类型允许的操作权限

对象

对象类型

操作权限

属性列

table

select,

insert,

update,

delete

all

privieges

视图

table

select,

insert,

update,

delete

all

privieges

基本表

table

select,

insert,

update,

alter,

index,delete

all

privieges

数据库

database

createtab

详细信息…

接受权限的用户可以是一个或多个具体用户,也可以是public即全体用户。

如果指定了with

grant

option子句,则获得某种权限的用户还可以把这种权限再授予别的用户。如果没有指定with

grant

option子句,则获得某种权限的用户只能使用该权限,但不能传播该权限。

例1

把查询student表权限授给用户u1

grant

select

on

table

student

to

u1;

例2

把对student表和course表的全部权限授予用户u2和u3

grant

all

priviliges

on

table

student,

course

to

u2,

u3;

例3

把对表sc的查询权限授予所有用户

grant

select

on

table

sc

to

public;

例4

把查询student表和修改学生学号的权限授给用户u4

详细信息…

这里实际上要授予u4用户的是对基本表student的select权限和对属性列sno的update权限。授予关于属性列的权限时必须明确指出相应属性列名。完成本授权操作的sql语句为:

grant

update(sno),

select

on

table

student

to

u4;

例5

把对表sc的insert权限授予u5用户,并允许他再将此权限授予其他用户

grant

insert

on

table

sc

to

u5

with

grant

option;

详细信息…

执行此sql语句后,u5不仅拥有了对表sc的insert权限,还可以传播此权限,即由u5用户发上述grant命令给其他用户。

例如u5可以将此权限授予u6:

grant

insert

on

table

sc

to

u6

with

grant

option;

同样,u6还可以将此权限授予u7:

grant

insert

on

table

sc

to

u7;

因为u6未给u7传播的权限,因此u7不能再传播此权限。

例6

dba把在数据库s_c中建立表的权限授予用户u8

grant

createtab

on

database

s_c

to

u8;

SQL授权问题

先赋予所有的列权限,再使用deny排除列或者revoke取消列就可以了

请问如何用SQL语句为指定用户授权?

用SQL语句为指定用户授权的具体步骤如下:

我们需要准备的材料分别是:电脑、sqlserver2008

1、首先打开sqlserver2008,之后点击打开左上角的“新建查询”。

2、然后在弹出来的窗口中新建aa用户,输入:

exec sp_addlogin  'aa',    '123456',    'mydb'

exec  sp_grantdbaccess  'aa'

EXEC sp_addrolemember 'db_datareader', 'aa',让aa用户获得设置查询mydb所有表的权限。

3、然后用aa账号登录到该系统中即可。

AWS开源可跨关联式与NoSQL数据库的查询语言PartiQL

AWS推出了与SQL兼容的查询语言PartiQL,只要数据库查询引擎提供PartiQL支持,使用者就能以PartiQL单一查询关联式数据库的结构化资料,以及开放资料格式中的巢状资料或是半结构化资料,甚至还能用来查询NoSQL或是文件数据库中无固定结构(Schema-less)的资料。除了AWS自家的数据库服务,NoSQL数据库Couchbase Server也承诺将会支持PartiQL。

企业资料分散在关联式数据库、非关联式数据库以及资料湖泊中。高度结构化的资料,储存在SQL数据库或是资料仓储;无固定结构的资料则由键值储存、图形数据库(Graph Database)、分类帐数据库或是时间序列数据库等NoSQL数据库处理;而在资料湖泊中的资料,可能也有部分缺乏结构,或是可能为巢状或是多值结构。不同的资料类型适用于不同的使用案例,而每种类型的资料,可能都有自己的查询语言。

不同的资料储存对应不同的查询语言,当企业更换资料格式或是数据库引擎时,可能还需要跟着改变应用程式和查询语法,AWS提到,这对于资料的应用,特别是使用资料湖泊的灵活性与效率,有着很大的阻碍。为了统一不同类型数据库存取方法,AWS发布了查询语言PartiQL,这是个与SQL兼容的查询语言,可以用来查询以各种格式储存在各地的资料。

用户可以使用PartiQL来查询关联式数据库,像是在Redshift实作交易或是资料分析等应用,或对于Amazon S3资料湖泊的开放资料格式,同样能使用PartiQL对巢状资料与半结构化资料例如Amazon Ion格式进行查询,另外,PartiQL也可用于文件数据库等NoSQL数据库,查询无固定结构的资料。

AWS表示,PartiQL的出现,是为了满足自家查询和转换大量资料的需求,其提供严格的SQL兼容性,可与标准SQL混合使用,执行连接(Join)、过滤(Filtering)与聚合(Aggregation)操作,并以最小扩充支持巢状和半结构化资料,让开发者以简单且一致的方法,不需要更改查询语言,就能查询各种格式和服务的资料。

PartiQL具格式独立性与储存独立性,PartiQL语法和语义不依赖任何资料格式,无论使用者是要查询JSON、Parquet、ORC、CSV还是Ion等格式,查询语句的写法都相同,PartiQL的查询在综合逻辑类型系统上运作,才对应到不同底层的格式。而PartiQL也不相依于特定资料储存,因此适用于不同的底层资料储存。

虽然过去针对跨不同类型数据库查询的问题,已有不少解决方案,AWS指出,像是Postgres JSON同样也兼容于SQL,但是却无法良好地处理JSON巢状资料;而半结构化查询语言,虽然能良好处理巢状资料,但却无法与SQL语言兼容。AWS提到,PartiQL是第一个能够完全解决这些问题的查询语言。

目前AWS已在自家多项服务支持PartiQL,包括Amazon S3 Select、Amazon Glacier Select、Amazon Redshift Spectrum、Amazon QLDB,接下来几个月将会有更多的AWS服务支持PartiQL,Couchbase也公布将加入支持PartiQL的行列。现在PartiQL以Apache2.0授权许可开源,公开教学、规范以及参考实作,所有社群都能使用并参与贡献。


网页标题:nosql授权,noSQL是什么
URL分享:http://myzitong.com/article/hoeocj.html