sql设置表权限
declare@roworderint
declare@namevarchar(50)
declare@strvarchar(500)
declare@cntint
selectidentity(int,1,1)roworder,nameinto#tmpfromsysobjectswherextype='u'--namelike'PLMST_%'
select@cnt=count(*)from#tmp
set@roworder=1
while@roworder<=@cnt
begin
select@name=namefrom#tmpwhereroworder=@roworder
--print@name
set@str='grantallon'+@name+'to用户名'
--print@str
exec(@str)
set@roworder=@roworder+1
end
这段代码会取出所有表名,并挨个对每张表做grant操作。不知道能不能满足楼主的要求
‘贰’ SQLServer中怎么设定用户对某张表的权限
方法一、由Management Studio中的表上右键选属性(Properties),左边选权限(Permissions),右边中间添加和选中某个User或Role,下面选中或移除某个权限。
方法二、语句 : Grant 权限 On table 表名 To 用户名
‘叁’ sql server 表的权限如何解决
你搞的有点复杂了,你既然都有了Aa的权限了,直接修改不就行了么。
再说了,也可以让数据库管理员给你的角色授权嘛,怎么还新建一个库,没有必要。
==============================================================
这事儿啊,还得找你们数据库管理员。可以对单张表授权。
新建登陆用户,不用给库服务器角色,数据库角色就用默认的public。
然后,在查询分析器中,对创建的该角色,特殊授权。
比如我们创建了登陆名为rr的用户,仅仅把tb这张表给他用:
GRANT SELECT,delete,insert on tb TO rr
他对其他表是操作不了的。
‘肆’ 请问运行什么sql语句能单独设置某个数据库表权限
权限是针对用户的,你只能设置让某一些用户不能更新一张表,表是没有权限的
比如你像让用户abc_不能更新表abc_admin你可以这样
revoke all on abc_admin from abc_
这样abc_就对 abc_admin 没有任何权限了
此处的 all 可以替换你想要的比如 insert,update,delele等权限
‘伍’ SQL 2008 表 权限设置
use test
go
create user u_name for login u_name
grant select,insert on article to u_name
--可视权限
grant view definition ton article to u_name
‘陆’ 如何判断sql数据库创建表权限
--创建两个测试表
CREATE TABLE tb1(id int,value int)
INSERT tb1 VALUES(1,10)
CREATE TABLE tb2(id int,value int)
INSERT tb1 VALUES(1,10)
GO
--创建登录
CREATE LOGIN Liang WITH PASSWORD='[email protected]';
--创建用户
CREATE USER Liang FROM LOGIN Liang;
--授予用户对tb1有UPDATE某个列的权限,tb2只有SELECT权限
GRANT UPDATE(value) ON tb1 TO Liang
GRANT SELECT ON tb1 TO Liang
GRANT SELECT ON tb2 TO Liang
GO
--模拟用户Liang对tb1表进行UPDATE
EXECUTE AS USER='Liang'
UPDATE tb1 SET
value=20
WHERE id=1
REVERT
SELECT * FROM tb1
/*
id value
----------- -----------
1 20
(1 行受影响)
*/
--模拟用户Liang对tb2表进行UPDATE
EXECUTE AS USER='Liang'
UPDATE tb2 SET
value=20
WHERE id=1
REVERT
/*
消息 229,级别 14,状态 5,第 23 行
拒绝了对对象 'tb2' (数据库 'tempdb',架构 'dbo')的 UPDATE 权限。
*/
GO
--删除测试
DROP TABLE tb1,tb2
DROP USER Liang
DROP LOGIN Liang
--要控制对数据库的权限, 可以参考下面的:
-- 防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限)
--切换到你新增的用户要控制的数据库
use 你的库名
go
--新增用户
exec sp_addlogin 'test' --添加登录
exec sp_grantdbaccess N'test' --使其成为当前数据库的合法用户
exec sp_addrolemember N'db_owner', N'test' --授予对自己数据库的所有权限
--这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表
go
--删除测试用户
exec sp_revokedbaccess N'test' --移除对数据库的访问权限
exec sp_droplogin N'test' --删除登录
如果在企业管理器中创建的话,就用:
企业管理器--安全性--右键登录--新建登录
常规项
--名称中输入用户名
--身份验证方式根据你的需要选择(如果是使用windows身份验证,则要先在操作系统的用户中新建用户)
--默认设置中,选择你新建的用户要访问的数据库名
服务器角色项
这个里面不要选择任何东西
数据库访问项
勾选你创建的用户需要访问的数据库名
数据库角色中允许,勾选"public","db_ownew"
确定,这样建好的用户与上面语句建立的用户一样
最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:
--添加只允许访问指定表的用户:
exec sp_addlogin '用户名','密码','默认数据库名'
--添加到数据库
exec sp_grantdbaccess '用户名'
--分配整表权限
GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用户名]
--分配权限到具体的列
GRANT SELECT , UPDATE ON table1(id,AA) TO [用户名]
‘柒’ sql中在一个数据库中的各个表的权限怎么设定啊 是一个数据库中各个表的权限 高手指点下 谢谢
如果是使用图形界面管理工具,可以在表上点右键,选择属性|权限,然后在相应的权限项目上打勾就可以了。
如果是使用sql语句,可以如下:
grant select|insert|update|delete on tablename to username
deny select|insert|update|delete on tablename to username
revoke select|insert|update|delete on tablename from username
grant是赋予权限,deny是拒绝权限,revoke是撤消权限,而select|insert|update|delete是可以设置的各个权限项目。
‘捌’ 如何给SQL Server数据库设置修改表结构的权限
== 给某个登录账号设置权限?
首先你需要有一个有给其他账号授权修改表结构权限的账号,
登录这个账号,然后编辑你要授权的账号,执行grant语句授权
‘玖’ sql 怎样创建表权限
--创建两个测试表
CREATE TABLE tb1(id int,value int)
INSERT tb1 VALUES(1,10)
CREATE TABLE tb2(id int,value int)
INSERT tb1 VALUES(1,10)
GO
--创建登录
CREATE LOGIN Liang WITH PASSWORD='[email protected]';
--创建用户
CREATE USER Liang FROM LOGIN Liang;
--授予用户对tb1有UPDATE某个列的权限,tb2只有SELECT权限
GRANT UPDATE(value) ON tb1 TO Liang
GRANT SELECT ON tb1 TO Liang
GRANT SELECT ON tb2 TO Liang
GO
--模拟用户Liang对tb1表进行UPDATE
EXECUTE AS USER='Liang'
UPDATE tb1 SET
value=20
WHERE id=1
REVERT
SELECT * FROM tb1
/*
id value
----------- -----------
1 20
(1 行受影响)
*/
--模拟用户Liang对tb2表进行UPDATE
EXECUTE AS USER='Liang'
UPDATE tb2 SET
value=20
WHERE id=1
REVERT
/*
消息 229,级别 14,状态 5,第 23 行
拒绝了对对象 'tb2' (数据库 'tempdb',架构 'dbo')的 UPDATE 权限。
*/
GO
--删除测试
DROP TABLE tb1,tb2
DROP USER Liang
DROP LOGIN Liang
--要控制对数据库的权限, 可以参考下面的:
-- 防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限)
--切换到你新增的用户要控制的数据库
use 你的库名
go
--新增用户
exec sp_addlogin 'test' --添加登录
exec sp_grantdbaccess N'test' --使其成为当前数据库的合法用户
exec sp_addrolemember N'db_owner', N'test' --授予对自己数据库的所有权限
--这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表
go
--删除测试用户
exec sp_revokedbaccess N'test' --移除对数据库的访问权限
exec sp_droplogin N'test' --删除登录
如果在企业管理器中创建的话,就用:
企业管理器--安全性--右键登录--新建登录
常规项
--名称中输入用户名
--身份验证方式根据你的需要选择(如果是使用windows身份验证,则要先在操作系统的用户中新建用户)
--默认设置中,选择你新建的用户要访问的数据库名
服务器角色项
这个里面不要选择任何东西
数据库访问项
勾选你创建的用户需要访问的数据库名
数据库角色中允许,勾选"public","db_ownew"
确定,这样建好的用户与上面语句建立的用户一样
最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:
--添加只允许访问指定表的用户:
exec sp_addlogin '用户名','密码','默认数据库名'
--添加到数据库
exec sp_grantdbaccess '用户名'
--分配整表权限
GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用户名]
--分配权限到具体的列
GRANT SELECT , UPDATE ON table1(id,AA) TO [用户名]