1.創建額外用戶(必須在master數據庫下進行)
use master
go
exec sp_Grantlogin '計算機名\用戶名'
2.創建SQLServer登錄賬戶
use master
go
exec sp_addlogin '用戶名','密碼'
3.創建單個數據庫用戶
use 目標數據庫
go
exec sp_grantdbaccess'用戶名','密碼'
系統內置數據庫用戶
dbo用戶:數據庫的擁有者,無法刪除,擁有全部權限,默認分配給sa賬戶
guest用戶:適用於沒有數據庫用戶的登錄訪問,每個數據庫可以設置和刪除
4.刪除帳號
use master
go
--刪除登錄號
exec sp_droplogin '用戶名'
use 目標數據庫
go
--刪除用戶
exec sp_dropuser '用戶名'
5.給數據庫授權/撤回權限
use 目標庫
go
grant 權限 [on 表名] to 數據庫用戶名--授權
revoke 權限 [on 表名] to 數據庫用戶--收回權限
權限種類包括select(查詢)、insert(插入)、update(修改)、create(創建)、delete(刪除)、等
6.數據庫角色管理
名稱 | 權限 |
db_owner | 所有權限 |
db_accessadmin | 新建、刪除數據庫用戶 |
db_datareader | 查看數據庫 |
db_datawirter | 新建、修改、刪除數據庫 |
db_ddladmin | 新建、修改、刪除數據庫中對象 |
db_securityadmin | 管理數據庫權限 |
db_backupoperator | 備份數據庫 |
db_denydatareader | 可以拒絕選擇數據庫中的數據 |
db_denydatawirter | 可以拒絕更改數據庫中的數據 |
給數據庫用戶固定/刪除角色
exec sp_addrolemember '角色名','用戶名'--固定角色
exec sp_droprolemember '角色名','用戶名'--刪除角色
7.SQL程序
1.變量
局部變量:@age 先聲明(declare)再賦值
全局變量:@@version 由系統定義和維護、只能讀取不能修改
定義局部變量
declare @變量名 數據類型
賦值
set @變量名 = 值
select @變量名 = 值
--二選一即可
實例(查詢一個數據相鄰的兩個數據)
declare @stuid in,@stuname varchar(20)
select @stuid = StudentId from Student where StudentName=@stuname
select * from Student where StudentAddress=(@stuid+1) or (@stuId-1)
set和select的區別
set | select | |
多對象賦值 | 不支持 | 支持 |
返回多個值 | 出錯 | 返回最後一個賦給變量的值 |
表達式未返回值時 | 變量被複製爲NULL | 變量保持原狀 |
常見的全局變量
@@ERROR | 最後一個T-SQL的錯誤號 |
@@IDENTITY | 最後一次插入的標準值 |
@@LANGUAGE | 當前使用的語言的名稱 |
@@MAX_CONNECTIONS | 最大連接數(連接池容量) |
@@ROWCOUNT | 上一個收SQL語句影響的行數 |
@@SERVERNAME | 服務器名稱 |
@@TRANSCOUNT | 當前連接打開的事務數 |
@@VERSION | SQL版本 |
例
print '服務器名稱:'+@@servername
print 'SQL版本:'+@@version
select @@servername as '服務器名稱'
select @@version as '版本'