回复人: gdczch(一个好好人) ( ) 信誉:82 2005-08-11 18:49:00 得分: 0
楼上,你这样只是对整张表的权限
我是想要具体到某一列的权限啊
---就是楼上说的那样,你选择该表,点击右键,选择内容(我的是繁体文系统,简体好像是属性)-〉然后选择权限permissions,出现permissions对话框,你要选择对那张表,列表的是用户对表的权限,--〉然后你点击columns--〉列出的就是每个字段,就可以设置对应的列的权限,FYI
楼上,你这样只是对整张表的权限
我是想要具体到某一列的权限啊
---就是楼上说的那样,你选择该表,点击右键,选择内容(我的是繁体文系统,简体好像是属性)-〉然后选择权限permissions,出现permissions对话框,你要选择对那张表,列表的是用户对表的权限,--〉然后你点击columns--〉列出的就是每个字段,就可以设置对应的列的权限,FYI
go
--创建一个数据库db1,并建立一张数据表ta
if exists(select 1 from sysdatabases where name='db1') drop database db1
create database db1
go
use db1
select * into ta from northwind..orders
go
--新建一个登录名login1, 密码为123, 默认登录数据库为db1
exec sp_addlogin login1, 123, db1
--将该登录名映射为一个用户名
exec sp_adduser login1, user1
--给予用户abc对northwind数据库中orders表的orderid的update权限
grant update (orderdate)
on ta
to user1
/*
登录后执行下面语句
begin tran
update northwind..orders
set orderdate='2005-8-11'
where orderdate='1996-7-4'
rollback tran
*/
--下面语句是用来清除测试环境的.
--清除该登录名
exec sp_dropuser user1
exec sp_droplogin login1
drop database db1
对用户dbo只允许修改table1的id 和 name1这两个字段的话,
可以这样做:
create trigger tr1
on table1
for update
as
begin tran
if update(tel,addr)
begin
rollback tran
print '你无权修改该字段'
endend