編程管理SQLSERVER的帳號

字號:

每個人都關心數據安全。如果不關心的話,可能沒有意識到訪問服務器中的敏感數據是非常容易的。因為SQL SERVER在這方面已經替我們考慮過了,所以在我們開發(fā)應用程序就可以直接使用SQL SERVER的安全策略。
    在SQL SERVER中,我們可以在ENTERPRISE MANAGER中創(chuàng)建一個登錄帳號,并且賦予一定的權限,如果要做到我們的應用程序中呢?
    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中測試通過