国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

編程管理sql server的帳號

2024-08-31 00:51:29
字體:
來源:轉載
供稿:網友
編程管理SQL   SERVER的帳號      
       
  每個人都關心數據安全。  
  如果不關心的話,可能沒有意識到訪問服務器中的敏感數據是非常容易的。  
  因為SQL   SERVER在這方面已經替我們考慮過了,  
  所以在我們開發應用程序就可以直接使用SQL   SERVER的安全策略。    
   
  在SQL   SERVER中,我們可以在ENTERPRISE   MANAGER中創建一個登錄帳號,  
  并且賦予一定的權限,如果要做到我們的應用程序中呢?    
   
   
  ==============================================================================  
  SQL   SERVER提供了如下系統過程    
   
   
  ▲▲一、SP_ADDLOGIN  
  創建新的   Microsoft   SQL   Server   登錄,使用戶得以連接使用   SQL   Server   身份驗證的   SQL   Server   實例。  
   
  語法  
  sp_addlogin   [   @loginame   =   ]   'login'  
          [   ,   [   @passwd   =   ]   'passWord'   ]  
          [   ,   [   @defdb   =   ]   'database'   ]  
          [   ,   [   @deflanguage   =   ]   'language'   ]  
          [   ,   [   @sid   =   ]   sid   ]  
          [   ,   [   @encryptopt   =   ]   'encryption_option'   ]  
   
  參數  
  [@loginame   =]   'login'  
  登錄的名稱。login   的數據類型為   sysname,沒有默認設置。  
   
  [@passwd   =]   'password'  
  登錄密碼。password   的數據類型為   sysname,默認設置為   NULL。sp_addlogin   執行后,password   被加密并存儲在系統表中。  
   
  [@defdb   =]   'database'  
  登錄的默認數據庫(登錄后登錄所連接到的數據庫)。database   的數據類型為   sysname,默認設置為   master。  
   
  [@deflanguage   =]   'language'  
  用戶登錄到   SQL   Server   時系統指派的默認語言。language   的數據類型為   sysname,默認設置為   NULL。如果沒有指定   language,那么   language   被設置為服務器當前的默認語言(由   sp_configure   配置變量   default   language   定義)。更改服務器的默認語言不會更改現有登錄的默認語言。language   保持與添加登錄時所使用的默認語言相同。  
   
  [@sid   =]   sid  
  安全標識號   (SID)。sid   的數據類型為   varbinary(16),默認設置為   NULL。如果   sid   為   NULL,則系統為新登錄生成   SID。盡管使用   varbinary   數據類型,非   NULL   的值也必須正好為   16   個字節長度,且不能事先存在。SID   很有用,例如,如果要編寫   SQL   Server   登錄腳本,或要將   SQL   Server   登錄從一臺服務器移動到另一臺,并且希望登錄在服務器間具有相同的   SID   時。  
   
  [@encryptopt   =]   'encryption_option'  
  指定當密碼存儲在系統表中時,密碼是否要加密。encryption_option   的數據類型為   varchar(20),可以是下列值之一。  
  值 描述    
  -------------------   ------------------------------------------------------------  
  NULL 加密密碼。這是默認設置。    
  skip_encryption 密碼已加密。SQL   Server   應該存儲值而且不用重新對其加密。    
  skip_encryption_old 已提供的密碼由   SQL   Server   較早版本加密。SQL   Server   應該存儲值而且不用重新對其加密。此選項只供升級使用。    
   
   
  ▲▲二、SP_GRANTDBaccess  
  為   Microsoft   SQL   Server   登錄或   Microsoft   Windows   NT   用戶或組在當前數據庫中添加一個安全帳戶,并使其能夠被授予在數據庫中執行活動的權限。  
   
  語法:  
  sp_grantdbaccess   [@loginame   =]   'login'  
          [,[@name_in_db   =]   'name_in_db'   [OUTPUT]]  
   
  參數:  
  [@loginame   =]   'login'  
  當前數據庫中新安全帳戶的登錄名稱。Windows   NT   組和用戶必須用   Windows   NT   域名限定,格式為"域/用戶",例如   LONDON/Joeb。登錄不能使用數據庫中已有的帳戶作為別名。login   的數據類型為   sysname,沒有默認值。  
   
  [@name_in_db   =]   'name_in_db'   [OUTPUT]  
  數據庫中帳戶的名稱。name_in_db   是   sysname   類型的   OUTPUT   變量,默認值為   NULL。如果沒有指定,則使用   login。如果將其指定為   NULL   值的   OUTPUT   變量,則設置   @name_in_db   為   login。當前數據庫不必存在   name_in_db。  
   
   
  ▲▲三、SP_DROPLOGIN  
  刪除   Microsoft   SQL   Server   登錄,以阻止使用該登錄名訪問   SQL   Server。  
   
  語法  
  sp_droplogin   [   @loginame   =   ]   'login'  
   
  參數  
  [@loginame   =]   'login'  
  將被刪除的登錄。login   的數據類型為   sysname,沒有默認值。login   必須已經存在于   SQL   Server   中。  
   
   
  ▲▲四、SP_REVOKEDBACCESS  
  從當前數據庫中刪除安全帳戶。  
   
  語法  
  sp_revokedbaccess   [   @name_in_db   =   ]   'name'  
   
  參數  
  [@name_in_db   =]   'name'  
  是要刪除的帳戶名。name   的數據類型為   sysname,無默認值。name   可以是   Microsoft?   SQL   Server?   用戶名或   Microsoft   Windows   NT?   用戶名或組名,而且必須存在于當前數據庫中。當指定   Windows   NT   用戶或組時,請指定該   Windows   NT   用戶或組在數據庫中可被識別的名稱(即用   sp_grantdbaccess   添加的名稱)。  
   
   
  ▲▲五、GRANT  
  在安全系統中創建項目,使當前數據庫中的用戶得以處理當前數據庫中的數據或執行特定的   Transact-SQL   語句。  
   
  語法  
  語句權限:  
   
  GRANT   {   ALL   |   statement   [   ,...n   ]   }    
  TO   security_account   [   ,...n   ]  
   
  對象權限:  
   
  GRANT  
          {   ALL   [   PRIVILEGES   ]   |   permission   [   ,...n   ]   }  
          {    
                  [   (   column   [   ,...n   ]   )   ]   ON   {   table   |   view   }  
                  |   ON   {   table   |   view   }   [   (   column   [   ,...n   ]   )   ]  
                  |   ON   {   stored_procedure   |   extended_procedure   }  
                  |   ON   {   user_defined_function   }  
          }    
  TO   security_account   [   ,...n   ]    
  [   WITH   GRANT   OPTION   ]    
  [   AS   {   group   |   role   }   ]  
   
   
  ▲▲六、REVOKE  
  刪除以前在當前數據庫內的用戶上授予或拒絕的權限。  
   
  語法  
  語句權限:  
  REVOKE   {   ALL   |   statement   [   ,...n   ]   }    
  FROM   security_account   [   ,...n   ]  
   
  對象權限:  
   
  REVOKE   [   GRANT   OPTION   FOR   ]  
          {   ALL   [   PRIVILEGES   ]   |   permission   [   ,...n   ]   }  
          {    
                  [   (   column   [   ,...n   ]   )   ]   ON   {   table   |   view   }  
                  |   ON   {   table   |   view   }   [   (   column   [   ,...n   ]   )   ]  
                  |   ON   {   stored_procedure   |   extended_procedure   }  
                  |   ON   {   user_defined_function   }  
          }    
  {   TO   |   FROM   }  
          security_account   [   ,...n   ]    
  [   CASCADE   ]    
  [   AS   {   group   |   role   }   ]    
   
   
  ▲▲SP_PASSWORD  
  添加或更改   Microsoft?   SQL   Server?   登錄的密碼。  
   
  語法  
  sp_password   [   [   @old   =   ]   'old_password'   ,   ]  
          {   [   @new   =]   'new_password'   }  
          [   ,   [   @loginame   =   ]   'login'   ]  
   
  參數  
  [@old   =]   'old_password'  
  是舊密碼。old_password   為   sysname   類型,其默認值為   NULL。  
   
  [@new   =]   'new_password'  
  是新密碼。new_password   為   sysname   類型,無默認值。如果沒有使用命名參數,就必須指定   old_password。  
   
  [@loginame   =]   'login'  
  是受密碼更改影響的登錄名。login   為   sysname   類型,其默認值為   NULL。login   必須已經存在,并且只能由   sysadmin   固定服務器角色的成員指定。  
   
       
  =============================================================================  
  應用實例:    
   
  --添加  
  --添加用戶:  
  exec   sp_addlogin   '用戶名','密碼','默認數據庫名'  
   
  --添加到數據庫  
  exec   sp_grantdbaccess   '用戶名','數據庫名'  
   
  --分本權限  
  grant   insert,select,update,delete   on   table1   to   public    
   
  --刪除                    
  --刪除權限  
  revoke   insert,delete   on   table1   from   public    
   
  --刪除數據庫中的用戶  
  exec   sp_revokedbaccess   '用戶名'  
   
  --刪除用戶  
  exec   sp_droplogin   '用戶名'
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湟中县| 东港市| 江阴市| 曲靖市| 绥芬河市| 南城县| 平乡县| 拉萨市| 东兴市| 沙河市| 晋宁县| 化隆| 正宁县| 九龙城区| 遂昌县| 沛县| 琼结县| 郁南县| 宝应县| 宿迁市| 朝阳市| 米脂县| 禹州市| 湾仔区| 中牟县| 乐东| 万州区| 巍山| 大兴区| 邓州市| 嵊州市| 湖口县| 永胜县| 霍林郭勒市| 灵石县| 庆阳市| 元氏县| 铁岭县| 元氏县| 中卫市| 白山市|