none
如何在SQL Server 2000里面设置账户的权限? RRS feed

  • 问题

  •  

    直接用sa, 感觉很不安全. 我想自己建立一个账户, 给它有限有权限. 这样就会增强数据库的安全性.

     

     

    但是, 我一直不知道在 SQL Server 2000 里面什么地方设置.

     

     

    我的网站使用数据库其实就是基本的功能:

     

    1. 搜索商品信息

     

    2. 客户注册

     

    3. 客户登录后显示他的个人信息

     

    4. 客户可以修改他的个人信息, 如地址, 邮编等.

     

    5. 管理员可以删除不合格或长期不登录的注册客户.

     

     

     

     

    那么, 数据库的权限具体是什么?  如何才能正确地设置. 如果有图片就好了.

     

     

     

    谢谢!

    2008年8月2日 13:33

答案

  • You can create sql login in sql2k enterprise manager and assign permission in it too.

     

    2008年8月2日 17:27
  • 安全性方面考虑最好不要用sa账号。

     

    要控制对数据库的权限,   可以参考下面的:  
       
      --   防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限)      
         
      --切换到你新增的用户要控制的数据库      
      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联机帮助
    2008年8月3日 6:11
    版主

全部回复

  • You can create sql login in sql2k enterprise manager and assign permission in it too.

     

    2008年8月2日 17:27
  •  

    补充一下, 我的网站是用ASP.NET 2.0做出来的.
    2008年8月3日 2:46
  • 安全性方面考虑最好不要用sa账号。

     

    要控制对数据库的权限,   可以参考下面的:  
       
      --   防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限)      
         
      --切换到你新增的用户要控制的数据库      
      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联机帮助
    2008年8月3日 6:11
    版主
  •  

    谢谢了.
    2008年8月3日 7:40