首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2005 內建函數、系統預存程序與角色權限完整速查表

     編輯:關於SqlServer

前言

SQL Server 2005 引入大量新功能,內建函數、系統預存程序、固定伺服器/資料庫角色成為日常開發運維核心工具集。本文彙整分類速查表,涵蓋日期/字串/系統/轉換函數、全域變數、百餘支系統預存程序用途、角色權限矩陣,供快速查閱。

一、日期時間函數

函數說明
DATEADD(datepart, number, date)日期加減,回傳新 datetime
DATEDIFF(datepart, start, end)跨越的日期/時間邊界數
DATENAME(datepart, date)指定部分的字串名稱 (如 'January')
DATEPART(datepart, date)指定部分的整數值
DAY(date), MONTH(date), YEAR(date)對應部分整數
GETDATE()目前系統日期時間 (低精度)
GETUTCDATE()目前 UTC 時間
SYSDATETIME(), SYSUTCDATETIME()高精度 (100ns) 日期時間 (SQL 2008+)

datepart 常用值:year/yy/yyyy, quarter/qq/q, month/mm/m, dayofyear/dy/y, day/dd/d, week/ww/wk, weekday/dw, hour/hh, minute/mi/n, second/ss/s, millisecond/ms。

二、字串處理函數

函數說明
LOWER(str), UPPER(str)大小寫轉換
LTRIM(str), RTRIM(str), TRIM(str) (2017+)去除前導/尾隨/兩側空白
SUBSTRING(str, start, length)擷取子字串 (1-based)
CHARINDEX(find, str[, start])搜尋字串位置
REPLACE(str, old, new)取代字串
LEN(str), DATALENGTH(str)字元數 / 位元組數
LEFT(str, n), RIGHT(str, n)左/右 n 字元
STUFF(str, start, len, new)刪除並插入
REPLICATE(str, n)重複 n 次
FORMAT(value, format[, culture]) (2012+).NET 格式化字串

三、數學/轉換/系統函數

分類函數說明
數學ROUND(n, d)四捨五入
FLOOR(n)向下取整
CEILING(n)向上取整
ABS(n), SQRT(n), POWER(a, b), RAND([seed])常用數學
轉換CAST(expr AS type)ANSI 標準轉型
CONVERT(type, expr[, style])SQL Server 擴充 (含日期格式 style)
TRY_CAST/TRY_CONVERT/TRY_PARSE (2012+)失敗回傳 NULL 不報錯
系統USER_NAME(), SUSER_NAME(), ORIGINAL_LOGIN()目前用戶/登入/原始登入
DB_NAME([dbid]), DB_ID([name])資料庫名稱/ID 互查
OBJECT_NAME(id), OBJECT_ID('name')物件名稱/ID 互查

四、全域變數 (@@ 開頭)

變數說明
@@ROWCOUNT上一陳述式影響列數
@@ERROR上一陳述式錯誤號 (舊式)
@@IDENTITY最後插入的識別值 (跨作用域,慎用)
SCOPE_IDENTITY()當前作用域最後識別值 (推薦)
@@TRANCOUNT目前交易巢狀層數
@@VERSION版本資訊字串
@@SERVERNAME本地伺服器名稱
@@SPID目前 Session ID
@@LANGUAGE, @@DATEFIRST語言/週起始日設定
@@MAX_CONNECTIONS, @@CONNECTIONS最大/累積連線數

五、常用系統預存程序分類速查

分類程序用途
資訊查詢sp_databases列出所有資料庫
sp_help [obj]物件結構 (欄位、索引、約束...)
sp_helptext 'proc'檢視程序/函數/觸發器/檢視表定義
sp_helpindex 'table'資料表索引詳細資訊
資料庫管理sp_dboption檢視/變更資料庫選項 (棄用,改用 ALTER DATABASE)
sp_helpdb [db]資料庫檔案、大小、選項
sp_detach_db / sp_attach_db卸離/附加資料庫
sp_addumpdevice / sp_dropdevice備份裝置管理
sp_configure執行個體組態選項
安全性/登入/角色sp_addlogin / sp_droplogin建立/刪除 SQL 登入
sp_grantdbaccess / sp_revokedbaccess資料庫用戶對應登入
sp_addrole / sp_droprole建立/刪除資料庫角色
sp_addrolemember / sp_droprolemember角色成員管理
sp_addsrvrolemember / sp_dropsrvrolemember固定伺服器角色成員管理
sp_grantlogin / sp_denyloginWindows 登入授權/拒絕
鍵/索引sp_pkeys 'table'主鍵欄位
sp_fkeys 'table'外鍵關聯
sp_helpconstraint 'table'所有約束
sp_statistics 'table'索引/統計資料
作業/代理sp_start_job / sp_stop_job啟動/停止 Agent 作業
sp_add_job / sp_delete_job建立/刪除作業
sp_add_jobstep / sp_update_jobstep作業步驟管理
游標 (T-SQL 程序內)sp_cursoropen / sp_cursorfetch / sp_cursorclose伺服器端游標生命週期
sp_cursorprepare / sp_cursorexecute / sp_cursorunprepare參數化游標準備/執行/釋放
sp_settriggerorder設定 AFTER 觸發器第一/最後觸發順序

六、固定伺服器角色權限矩陣

角色核心權限
sysadmin執行個體所有活動,跨越所有其他角色,最高權限
serveradmin伺服器組態選項 (sp_configure)、關機
setupadmin連結伺服器管理、特定系統程序
securityadmin登入管理、密碼重設、審計讀取
processadminKILL 處理序、管理背景程序
dbcreatorCREATE/ALTER/DROP DATABASE
diskadmin磁碟檔案管理 (資料/記錄檔擴充)
bulkadminBULK INSERT / OPENROWSET(BULK...)

七、固定資料庫角色權限矩陣

角色核心權限
public每個用戶隸屬,不可移除,捕獲資料庫預設權限基線
db_owner資料庫所有活動 (含 DDL、安全性、備份、複寫...),跨越所有其他資料庫角色
db_accessadmin資料庫用戶/角色增刪
db_datareader所有使用者表 SELECT
db_datawriter所有使用者表 INSERT/UPDATE/DELETE
db_ddladmin所有 DDL (CREATE/ALTER/DROP 物件)
db_securityadmin角色成員、權限、應用程式角色管理
db_backupoperatorBACKUP DATABASE/LOG, DBCC, CHECKPOINT
db_denydatareader拒絕 SELECT (優先級高於授與)
db_denydatawriter拒絕 INSERT/UPDATE/DELETE

八、實務建議

  1. 最小權限原則:應用程式帳號僅授 db_datareader/db_datawriter 或自訂角色 + EXECUTE 預存程序,嚴禁 sysadmin/db_owner。
  2. 避免直接授予 public:public 權限影響所有用戶,僅授予極基礎權限 (如 VIEW DEFINITION)。
  3. 定期審計:SELECT * FROM sys.server_role_members rm JOIN sys.server_principals r ON rm.role_principal_id = r.principal_id JOIN sys.server_principals m ON rm.member_principal_id = m.principal_id; 檢查伺服器角色成員;資料庫角色同理查 sys.database_role_members。
  4. 善用 TRY_CAST/TRY_CONVERT:資料清洗、ETL 中避免轉型失敗中斷批次。

結語

熟記核心函數語法、系統程序用途、角色權限邊界,是 SQL Server 開發運維的基本功。將本速查表加入團隊知識庫,新人入職必讀、資安稽核必核、架構設計必查,能有效避免權限過度、函數誤用、程序重複造輪子等常見問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved