MSSQL進階技術(一)

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 '版本'

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章