SQL Server中sysobjects含義及批量賦予許可權的方法
--1 賦予jrzsfc賬號對所有使用者表select,insert,update,delete許可權
DECLARE ACUR CURSOR FOR
SELECT name FROM SYSOBJECTS WHERE TYPE='U'
DECLARE @NAME VARCHAR(100)
DECLARE @SQL VARCHAR(512)
OPEN ACUR
FETCH NEXT FROM ACUR INTO @NAME
WHILE @@fetch_status=0
BEGIN
EXEC ('grant select,insert,delete,update ON ['+ @NAME+'] TO jrzsfc;')
FETCH NEXT FROM ACUR INTO @NAME
END
CLOSE ACUR
DEALLOCATE ACUR
--2 賦予jrzsfc對所有使用者檢視select,insert,update,delete許可權
DECLARE ACUR CURSOR FOR
SELECT name FROM SYSOBJECTS WHERE TYPE='V' and status>0
DECLARE @NAME VARCHAR(100)
DECLARE @SQL VARCHAR(512)
OPEN ACUR
FETCH NEXT FROM ACUR INTO @NAME
WHILE @@fetch_status=0
BEGIN
EXEC ('grant select,insert,delete,update ON ['+ @NAME+'] TO jrzsfc;')
FETCH NEXT FROM ACUR INTO @NAME
END
CLOSE ACUR
DEALLOCATE ACUR
--3 賦予jrzsfc對所有procedure execute許可權,剔除系統儲存過程
DECLARE ACUR CURSOR FOR
SELECT name FROM SYSOBJECTS WHERE TYPE='P' and name not like 'dt%'
DECLARE @NAME VARCHAR(100)
DECLARE @SQL VARCHAR(512)
OPEN ACUR
FETCH NEXT FROM ACUR INTO @NAME
WHILE @@fetch_status=0
BEGIN
EXEC ('grant execute ON ['+ @NAME+'] TO jrzsfc;')
FETCH NEXT FROM ACUR INTO @NAME
END
CLOSE ACUR
DEALLOCATE ACUR
--4 賦予jrzsfc對所有標量值函式execute許可權
DECLARE ACUR CURSOR FOR
SELECT name FROM SYSOBJECTS WHERE TYPE='FN'
DECLARE @NAME VARCHAR(100)
DECLARE @SQL VARCHAR(512)
OPEN ACUR
FETCH NEXT FROM ACUR INTO @NAME
WHILE @@fetch_status=0
BEGIN
EXEC ('grant execute ON ['+ @NAME+'] TO jrzsfc;')
FETCH NEXT FROM ACUR INTO @NAME
END
CLOSE ACUR
DEALLOCATE ACUR
--5 賦予jrzsfc對表值函式select許可權
DECLARE ACUR CURSOR FOR
SELECT name FROM SYSOBJECTS WHERE TYPE='TF'
DECLARE @NAME VARCHAR(100)
DECLARE @SQL VARCHAR(512)
OPEN ACUR
FETCH NEXT FROM ACUR INTO @NAME
WHILE @@fetch_status=0
BEGIN
EXEC ('grant select ON ['+ @NAME+'] TO jrzsfc;')
FETCH NEXT FROM ACUR INTO @NAME
END
CLOSE ACUR
DEALLOCATE ACUR
--------------------------------------------------------------
sysobjects中type的定義如下:
sysobjects是MSSQL資料庫的系統表,在WEB許可權下可以正常訪問。
msysobjects是ACCESS資料庫的系統表,在WEB許可權下沒有許可權訪問,會提示"沒有許可權訪問"
我們在mssql的儲存過程中經常要處理一些特殊的物件,這些物件都存放在資料庫中的系統表sysobjects中,
並且通過type欄位來分類管理,那麼到底有哪些分類呢?
C=CHECK約束
D=預設值或Default約束
F=FOREIGN KEY約束
L=日誌(Log)
FN=標量函式
IF=內嵌表函式
P=儲存過程
PK=PRIMARY KEY約束(型別是 K)
RF=複製篩選儲存過程
S=系統表
TF=表函式
TR=觸發器
U=使用者表
UQ=UNIQUE約束(型別是K)
V=檢視
X=擴充套件儲存過程
例如:
while exists(select from sysobjects where type='F')
begin
...
end
這裡判斷了資料庫中是否存在外來鍵約束
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-610598/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sqlserver 賦予許可權的問題SQLServer
- MYSQL 建立賬戶,並賦予許可權MySql
- Windows Server 使用ICACLS在命令列給檔案賦予許可權WindowsServer命令列
- SQL Server SA許可權最新入侵方法SQLServer
- mysql 建立新使用者 並賦予許可權MySql
- SQL Server 許可權管理SQLServer
- 【轉】使用Navicat for Oracle新建表空間、使用者及許可權賦予Oracle
- linux新增使用者,並賦予root許可權Linux
- Linux 增加使用者並賦予suder許可權Linux
- sql server的許可權查詢SQLServer
- SQL Server許可權問題SQLServer
- exchange 賦予其他使用者訪問mailbox許可權AI
- LightDB/PostgreSQL標準業務建立語句【賦予讀寫許可權和只讀許可權】SQL
- ClearCase中批量重置許可權命令
- SQL Server中查詢使用者的物件許可權和角色的方法SQLServer物件
- Ubuntu下給普通或新增使用者賦予sudo許可權Ubuntu
- Linux檔案許可權符號含義Linux符號
- 呼叫者許可權與定義者許可權的pl/sql子程式SQL
- sql server sysobjects xtype型別SQLServerObject型別
- 講解Oracle系統中使用者許可權的賦予和檢視Oracle
- sql server點檢賬號需要的許可權SQLServer
- [譯]SQL Server分析服務的許可權配置SQLServer
- 使用SQL批量查詢出建立使用者及許可權指令碼SQL指令碼
- SQL Server 2000 許可權問題SQLServer
- Oracle給普通使用者賦予查詢動態效能檢視的許可權Oracle
- SQL Server2000 許可權問題SQLServer
- SQL Server資料庫SA許可權總結SQLServer資料庫
- Oracle中定義者許可權和呼叫者許可權案例分析Oracle
- sql許可權管理SQL
- oracle建立/刪除表空間、建立/刪除使用者並賦予許可權Oracle
- 自定義許可權物件物件
- 批量修改資料夾及檔案使用者許可權和使用者組許可權 centosCentOS
- 對定義者許可權和呼叫者許可權的理解
- android動態許可權到自定義許可權框架Android框架
- 關於SQL Server資料庫中的使用者許可權和角色管理SQLServer資料庫
- 013 Linux 搞懂「檔案所屬者更改及許可權的賦予」從未如此簡單(chmod、chgrp、chown)Linux
- android 6.0許可權機制的簡單封裝(支援批量申請許可權)Android封裝
- mysql主給備賦予許可權時報錯,MySQL [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clauseMySqlExpress