回复人: gdczch(一个好好人) ( ) 信誉:82  2005-08-11 18:49:00  得分: 0  
 
 
   楼上,你这样只是对整张表的权限
我是想要具体到某一列的权限啊
  
 
---就是楼上说的那样,你选择该表,点击右键,选择内容(我的是繁体文系统,简体好像是属性)-〉然后选择权限permissions,出现permissions对话框,你要选择对那张表,列表的是用户对表的权限,--〉然后你点击columns--〉列出的就是每个字段,就可以设置对应的列的权限,FYI

解决方案 »

  1.   

    use master
    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
      

  2.   

    假设现在有一个表table1,表中有四个字段id ,name1 ,tel , addr
    对用户dbo只允许修改table1的id 和 name1这两个字段的话,
    可以这样做:
    create  trigger tr1 
    on table1
    for update
    as 
    begin tran 
    if update(tel,addr)
    begin 
    rollback tran 
    print '你无权修改该字段'
    endend
      

  3.   

    不好意思,去掉最后一个end 就可以啦