
 
 | 
| 技术资料  > 数据库 > DB2 : 编程管理SQL SERVER的帐号 |  
编程管理SQL SERVER的帐号 March 25,2004 |  
每个人都关心数据安全。如果不关心的话,可能没有意识到访问服务器中的敏感数据是非常容易的。因为SQL SERVER在这方面已经替我们考虑过了,所以在我们开发应用程序就可以直接使用SQL SERVER的安全策略。 
 
    在SQL SERVER中,我们可以在ENTERPRISE MANAGER中创建一个登录帐号,并且赋予一定的权限,如果要做到我们的应用程序中呢? 
 
    SQL SERVER提供了如下系统过程 
 
    一、SP_ADDLOGIN    添加登录帐号 
 
        SP_ADDLOGIN login_id[,password[,defaultdb[,defaultlanguage]]] 
 
        login_id          帐号名 
        password          口令 
        defaultdb         缺省数据库,默认为MASTER数据库。 
        defaultlanguage   缺省语言 
 
    二、SP_ADDUSER    添加用户 
 
        SP_ADDUSER login_id[,username[,rolename]] 
 
        username          登录数据库的别名 
        rolename          用户隶属的组名 
 
    三、SP_DROPLOGIN  删除帐号 
 
        SP_DROPLOGIN login_id 
 
    四、SP_DROPUSER   删除用户 
 
        SP_DROPUSER username 
 
    五、GRANT         授予用户或组许可权限 
 
        GRANT permission_list ON object_name TO name_list 
 
        permission_list    授予的权限的清单 
        object_name        被授予权限的表、视图或存储过程 
        name_list          被授予权限的用户或组的清单 
 
    六、REVOKE        收回用户或组许可权限 
 
        REVOKE permission_list ON object_name FROM name_list 
 
    七、SP_PASSWORD   修改口令 
 
        SP_PASSWORD [old_password,]new_password[,login_id] 
 
    前六个过程只能SA或被SA授予Security Administrators权限的人才可使用,第七个过程普通用户可能使用,但不能使用login_id项,只有上述权限的人才可使用此项 
 
  
 
应用实例: 
 
    添加 
 
        declare @login varchar(6),@pass varchar(11) 
 
        exec sp_addlogin @login,@pass,databasename 
        exec sp_adduser @login,@login,public 
 
        grant insert,select,update,delete on table1 to public 
 
    删除         
 
        revoke insert,delete on table1 from public 
 
        exec sp_dropuser @login 
        exec sp_droplogin @login 
 
    本文代码在NT4+SQL7和WIN98+SQL7和NT4+SQL6.5中测试通过 
 
    参考资料:SQL Server 7.0 开发指南 
 
作者:Water |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved