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

作者&投稿:亥国 (若有异议请与网页底部的电邮联系)
如何用SQL语句对所有的用户表授权~

RANT语句的一般格式为:
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;

1. 首先在 SQL Server 服务器级别,创建登陆帐户(create login)
--创建登陆帐户(create login)
create login dba with password='abcd1234@', default_database=mydb

登陆帐户名为:“dba”,登陆密码:abcd1234@”,默认连接到的数据库:“mydb”。 这时候,dba 帐户就可以连接到 SQL Server 服务器上了。但是此时还不能 访问数据库中的对象(严格的说,此时 dba 帐户默认是 guest 数据库用户身份, 可以访问 guest 能够访问的数据库对象)。
要使 dba 帐户能够在 mydb 数据库中访问自己需要的对象, 需要在数据库 mydb 中建立一个“数据库用户”,赋予这个“数据库用户” 某些访问权限,并且把登陆帐户“dba” 和这个“数据库用户” 映射起来。 习惯上,“数据库用户” 的名字和 “登陆帐户”的名字相同,即:“dba”。 创建“数据库用户”和建立映射关系只需要一步即可完成:
2. 创建数据库用户(create user):
--为登陆账户创建数据库用户(create user),在mydb数据库中的security中的user下可以找到新创建的dba
create user dba for login dba with default_schema=dbo

并指定数据库用户“dba” 的默认 schema 是“dbo”。这意味着 用户“dba” 在执行“select * from t”,实际上执行的是 “select * from dbo.t”。
3. 通过加入数据库角色,赋予数据库用户“dba”权限:
--通过加入数据库角色,赋予数据库用户“db_owner”权限
exec sp_addrolemember 'db_owner', 'dba'

此时,dba 就可以全权管理数据库 mydb 中的对象了。
如果想让 SQL Server 登陆帐户“dba”访问多个数据库,比如 mydb2。 可以让 sa 执行下面的语句:

--让 SQL Server 登陆帐户“dba”访问多个数据库
use mydb2
go
create user dba for login dba with default_schema=dbo
go
exec sp_addrolemember 'db_owner', 'dba'
go

此时,dba 就可以有两个数据库 mydb, mydb2 的管理权限了!

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语句解决下列问题,求解答!!!
1、分析:最后输出的维度包含:核算单位(采购类别)、月份、供应商、实际入库数量、实际入库均价、实际入库金额 2、方案:按照前三个维度进行group by即可。select 核算单位(采购类别),月份,供应商,sum(实际入库数量) as 实际入库数量,sum(实际入库金额) as 实际入库金额,sum(实际入库金额) \/ sum(...

再问如何用SQL语句批修改某列数据的一部分??
update 表 set send_code='01'+right(send_code,8)如果你的send_code的长度不全部为10的话,还有个更好的方法,呵呵 update 表 set send_code=stuff(send_code,1,2,'01')

问一个SQL语句的写法
不知道你是直接在存储过程中还是要在程序中使用。程序中使用比较简单,将SQL语句作为一个字符串,按照传过来的变量随意拼装即可,然后进行执行。如果是存储过程或数据库函数中,除了直接写SQL语句外,也可以通过动态SQL处理,也就是把SQL语句作为字符串处理,然后执行。

sql 中怎样用SQL语句来实现为表添加一行求其列的平均值,也就是问聚合...
列 B C D 值 o p q x y z 我们求D列的平均值 select B,avg(D) FROM A group by B

django怎么使用sql命令(2023年最新分享)
importpymssql 创建一个数据库连接,host是服务器的ip地址,如果是本机可以用".",user是访问用户名,password是密码,database是数据库名,比ADO的连接似乎简单一些 conn=pymssql.connect(host=".",user="sa",password="twinflag",database="bbs")pythonDjango生成sql语句Django提供了sql,sql_all命令...

问个SQL语句,查询到的数据,除以2,余数四舍五入,如何写?
1.select price from books where id=1 查出你要更新的初始价格是多少 2.用select round(数字,精度)来四舍五入 例如select round(63.543,1)结果为63.5 3.将四舍五入的值更新到表中 update books set price=(select round((select price from books where id=1)\/2,1)) where id=1 希望...

怎么书写sql语句让图中相同产品合并到一起呀???急问???!!!
不对啊,你的表的主键是什么。你的相同产品的折扣是不是一样的,你要合并是说数量显示总数量,小计显示总价格,还是其他。select distinct 产品, 类别,sum(数量),单价,原价,折扣,sum(小计) from 表名 group by 产品,类别,单价,原价,折扣;...

问一个关于sql server添加数据的sql语句怎么写
这这里说下思路 首先读取出来目录里的文件名 用此方法 string[] fileNames= Directory.GetFiles("路径") 先得引用System.IO命名空间 到时候遍历此数组 foreach(string name in fileNames){ \/\/这里面写上你的处理 处理字符串就不用我写了吧 } 然后将此字符串插入数据库即可 ...

用SQL语句完成下列问题。
1、第一题,是查询总和,总和在SQL中使用sum,如:select sum(成绩) from 表名 2、第二题,查询平均值,SQl:select 学号,Avg(sum(成绩)) from 表名 group by 学号 3、第三题,查询每课程学生人数,SQL : select 课程名称,count(学号) from 表名 group by 课程名称 4、第四题,查询最高...

问个PB中用SQL语句的问题?
:sl1,:dw1,:jsr1,:dj1,:je1,:jsfs1 from ckdj_tab where ckph=:ckph1;这句就是普通的sql查询语句。下面这句应该是个自定义的函数。应该能在工作区树形窗口或者下方的function list标签下找到 ckdjcx(cpbh1,cpmc1,ljh1,khqc1,hw1,cx1,ckrq1,cd1,czy1,sl1,dw1,jsr1,dj1,je1,jsfs1)...

玉屏侗族自治县13625555409: 请问如何用SQL语句为指定用户授权? -
布堂美克: SQL语言用GRANT语句向用户授予操作权限,GRANT语句的一般格式为:GRANT <权限>[,<权限>]...[ON <对象类型> <对象名>] TO <用户>[,<用户>]... [WITH GRANT OPTION]; 其语义为:将对指定操作对象的指定操作权限授予指定的用户...

玉屏侗族自治县13625555409: 用SQL语句怎么设置权限? -
布堂美克: 主要是用revokesql2005中: exec sp_addlogin 'test' --添加登录 exec sp_grantdbaccess N'test' --使其成为当前数据库的合法用户 exec sp_addrolemember N'db_owner', N'test' --授予对自己数据库的所有权限 exec sp_revokedbaccess N'test' --移除...

玉屏侗族自治县13625555409: 跪求sql server怎样给新建用户赋权限 -
布堂美克: 用SQL建用户和赋权限 、数据库操作授权 grant 命令序列 to 用户名 A. 系统管理员可以授予其他用户CREATE DATABASE的权限,使其他用户可以成为数据库所有者.B. 数据库所有者在他所拥有的数据库中,可以授予其他用户的权限有:l ...

玉屏侗族自治县13625555409: sql server中如何用sql语句创建用户对某个数据的所有表的所有权限 -
布堂美克: exec sp_addlogin 'test' --添加登录 exec sp_grantdbaccess N'test' --使其成为当前数据库的合法用户 exec sp_addrolemember N'db_owner', N'test' --授予对自己数据库的所有权限

玉屏侗族自治县13625555409: :使用SQL语句(系统存储过程)完成SQL Server用户的创建,并能够对该用户进行授权. -
布堂美克: --用户的创建 CREATE LOGIN usernamexxx WITH PASSWORD=N'xxxx', DEFAULT_DATABASE=[master]--授权 grant all on table tb1 to usernamexxx

玉屏侗族自治县13625555409: 用SQL的GRANT语句完成以下授权定义或存取控制功能. -
布堂美克: 用存储过程用视图或用表的权限都可实现 A. 授予语句权限 下面的示例给用户 Mary 和 John 以及 Windows NT 组 Corporate\BobJ 授予多个语句权限.GRANT CREATE DATABASE, CREATE TABLE TO Mary, John, [Corporate\BobJ] B. 在权限层...

玉屏侗族自治县13625555409: SQL如何使用授于权限让用户查询数据库中的所有表? -
布堂美克: --创建登录账号 CREATE LOGIN USER1 WITH PASSWORD='123'; GO--打开授权的数据库(假设给数据库TEST授权) USE TEST GO--将登录账号映射为当前数据库用户 CREATE USER USER1 FOR LOGIN USER1 GO--授予用户对当前数据库所有表具有查询权 EXEC sp_addrolemember 'db_datareader', 'USER1'

玉屏侗族自治县13625555409: 对已登录用户帐户进一步授权访问所设计的数据库中的某些表的SQL语句怎么写?急~~ -
布堂美克: 用grant语句 如果是sql server的话 你可以在联机丛书中查询grant 里面有很详细的解答 下例显示权限的优先顺序.首先,给 public 角色授予 SELECT 权限.然后,将特定的权限授予用户 Mary、John 和 Tom.于是这些用户就有了对 authors 表的...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网