我现在只能建立到read 的用户;但不能限制它访问所有的对象.

解决方案 »

  1.   

    譬如,我只让nosa 这个数据库用户拥有访问view_readtb 这个视图;
    只允许执行sp_procdure123这个过程.
    怎么设置?
      

  2.   

    设置权限呀,把那些数据库中
    view_readtb
    sp_procdure123
    这些对象的权限给他,其他的不给了
      

  3.   

    这个是 sqlserver  我在安全性->登陆里没找到...具体的设置方法
     oracle 的话 我晓得;
      

  4.   

    --参考:
    Q : 數據庫安全管理范例! 
    主要解答者: zjcxc 提交人: zjcxc 
    感谢: zjcxc 
    审核者: pbsql 社区对应贴子: 查看 
         A :  
    首先,做好用户安全:  
     
    --简单的,只允许sql的用户访问sql(防止利用administrator组用户访问)  
     
    1.企业管理器--右键SQL实例--属性--安全性--身份验证--选择"sql  server和windows"--确定  
     
    2.企业管理器--安全性--登陆--右键sa--设置密码--其他用户也设置密码  
     
    3.删除用户:  
               BUILTIN\Administrators  
               <机器名>\Administrator  --这个用户不一定有  
       这样可以防止用windows身份登陆SQL  
     
    4.设置进入企业管理器需要输入密码  
    在企业管理器中  
               --右键你的服务器实例(就是那个有绿色图标的)  
               --编辑SQL  Server注册属性  
               --选择"使用  SQL  Server  身份验证"  
               --并勾选"总是提示输入登录名和密码"  
               --确定  
     
    --经过上面的设置,你的SQL  Server基本上算是安全了.  
    ------------------------------------------------------------------------  
     
    其次,改默认端口,隐藏服务器,减少被攻击的可能性  
     
    SQL  Server服务器  
               --开始  
               --程序  
               --Microsoft  SQL  Server  
               --服务器网络实用工具  
               --启用的协议中"TCP/IP"  
               --属性  
               --默认端口,输入一个自已定义的端口,比如2433  
               --勾选隐藏服务器  
     
    ----------------------------------------------------------------------------  
    --管好sql的用户,防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限)  
     
    --切换到你新增的用户要控制的数据库  
    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'            --删除登录  
     
    ---------------------------------------------------------------------------  
    最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:  
    --添加  
    --添加用户:  
    exec  sp_addlogin  '用户名','密码','默认数据库名'  
     
    --添加到数据库  
    exec  sp_grantdbaccess  '用户名','数据库名'  
     
    --分本权限  
    grant  insert,select,update,delete  on  table1  to  public    
     
      

  5.   

    权限建立参考上面,分配如下GRANT SELECT ON view_readtb TO nosa GRANT EXECUTE ON sp_procdure123 TO nosa 
      

  6.   


    我都是直接在管理器上直接建立用户的;
    建立用户时;如果没有赋值它所能访问的库的话;
    你这些GRANT 根本就执行不了;说找不到此用户或组;
    要是赋值了某个库的话,你不用GRANT 它也能访问;当然是我给它DB_DATAREADER角色了;