當前位置:首頁 » 編程語言 » sql精簡版授權
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql精簡版授權

發布時間: 2022-08-15 07:37:59

sql server怎麼給一個用戶授權資料庫

1.在運行 SQL Server 的計算機上,啟動 SQL Server Management Studio。 在「已注冊的伺服器」窗格中,雙擊「SQL Server」。
2.在對象資源管理器窗格中,展開「SQL Server」,展開「安全性」文件夾,右鍵單擊「登錄」,然後單擊「新建登錄」。
3.在「登錄名 - 新建」對話框中,指定 Windows 身份驗證或 SQL Server 身份驗證模式。
如果使用 Windows 身份驗證,請輸入登錄名,並選擇「允許訪問」或「拒絕訪問」選項。
如果使用 SQL Server 身份驗證,請鍵入登錄名和密碼,並確認密碼。
4.在左側窗格中,單擊「資料庫訪問」。
5. 在右側窗格中,對要授予訪問權的資料庫選中「允許」復選框,然後單擊「確定」。
https://technet.microsoft.com/zh-cn/zh-ch/library/ms172405(v=sql.105).aspx
http://www.cnblogs.com/xwdreamer/archive/2012/06/25/2562828.html

② 請問如何用SQL語句為指定用戶授權

用SQL語句為指定用戶授權的具體步驟如下:

我們需要准備的材料分別是:電腦、sqlserver2008

1、首先打開sqlserver2008,之後點擊打開左上角的「新建查詢」。

如何配置使用微軟SQL Server 數據分析工具

本系列文章分兩部分,本文是第二部分(第一部分參見:你的數據有多干凈?)。我們將以測試體驗的方式了解微軟SQL Server提供的數據分析工具。

其它一些外部分析工具具有更豐富的功能,但是SQL Server授權允許你免費就可以使用這款低調的分析工具。

接下來讓我們通過分析「AdventureWorksLT 」資料庫中的一些數據來了解這款工具。

在此之前,你需要先安裝好SQL Server集成服務,以及與SQL Server捆綁的Visual Studio精簡版。在SQL Server 2012中,叫做「SQL Server Data Tools」;而在SQL Server 2008中,名稱叫做「Business Intelligence Development Studio」。

如果你缺少這些組件,你可以運行SQL Server安裝程序並勾選相關組件,操作很簡單。

配置分析工具

不管你啟動哪個Visual Studio工作環境,都要創建一個集成服務項目。然後,從SSIS工具箱中拖拽一個數據分析任務到設計面板上,然後雙擊開始配置。

配置結果信息存儲在XML文件中,所以需要指定保存文件的名稱和路徑。

點擊目標旁邊的空白框,會出現一個箭頭。

點擊箭頭,然後點擊「New File connection」。

在結果框中,指定路徑和文件名(包括.xml後綴)。

點擊「確定」按鈕,然後點擊「Quick Profile」按鈕。

點擊「ADO.NET Connection」旁邊的「新建」按鈕。

在出現的對話框中,指定SQL Server和託管待分析數據的資料庫(我使用的是「AdventureWorksLT2012 」資料庫),然後點擊「確定」按鈕。

點擊表或視圖下拉框,選擇待分析數據(我選用的是「SalesLT.Proct」)。

保留默認勾選的復選框,然後點擊「確定」按鈕。確定後就會回到主設計界面。

最後,按「F5」就可以開始分析了。

分析成功,在SQL Server 2008中會有一個綠色小框來顯示,在SQL Server 2012中是個綠色小勾。如果你看到紅色小框或者紅叉,那麼可以在「Progress 」標簽頁找到哪裡出錯了。

查看結果

假設你看到的是綠色(在集成服務中每個人都喜歡這個顏色),那麼接下來啟動「Data Profile Viewer」應用程序。在開始菜單中,它在「Microsoft SQL Server XXXX」文件夾的集成服務子文件夾下。

在查看器中,點擊「打開」按鈕,找到你之前配置的xml文件。你現在可以看到分析結果了。

「adventureWorks」庫中的數據本來是乾乾凈凈的,所以我做了一些修改,你自己直接做的話看到的分析結果會不一樣。

在查看器左側面板中,你可以看到我們選擇的表,它下面是數據分析的五個不同方面(也就是我們配置任務時默認選中的五項)。

點擊「Candidate Key Profiles 」,就會在右側面板中顯示結果。

該信息展示了值的唯一性,你可以看看我的數據(修改過的),「名稱」列包含的數據不是百分之百唯一的。

我可以點擊「名稱」列來查看更多,界面中「 Key Violations 」部分下面會顯示更多信息。

錯誤的產品是「HL Road Frame – Black, 58」,問題是有兩行有相同的名稱(產品名稱通常應該是唯一的)。

在「 Key Violations 」中的問題產品上點擊,就會顯示出需要關注的行。

在左側面板中(+微信關注網路世界),點擊「Column Length Distribution Profiles」。

功能正如其名,這個頁面會分析每個列值的長度。

我這里顯示的結果,「顏色」列包含列最小長度是2。

就像我們前面例子中所做的那樣,我們可以向下鑽取,我可以看到那些值的分布,進一步鑽取我可以看到臟數據對應的實際行。

其它類型的分析操作都是類似的。

「Column NULL Ratio Profiles」顯示了某一列中「NULL」值的百分比。

如果你有些列實際上不允許為「NULL」,例如「Proct Name」,那麼這個功能就非常有用。

「Column Statistics Profiles 」顯示了日期和數值的最小值、最大值、平均值以及標准偏差。對於識別「327歲的員工」與「價格為負數的產品」這類不合理數據非常有幫助。

「Column Value Distribution Profiles 」顯示某一列中有多少不同的值。這對於處理像「性別」這種列是很有用的,你可能預期該列只有兩個不同值,但是卻找到了15個,很容易發現問題。

還有另外兩個分析功能也是可用的,不過默認沒有啟用。

其中一個就是「Functional Dependency Profile 」,它可以找到那些依賴於其它列值得列。

這一條功能對於檢查地址信息時很有用;例如,我們希望相同城市的地址共用相同的郵政編碼。

總結

該分析工具的局限性在於,源數據必須存儲在SQL Server資料庫中。例如,如果你希望分析存儲在平面文件中的數據,那麼你必須先把數據導入到SQL Server資料庫中。

此外,該分析工具不支持創建額外的定製分析功能實現擴展。你看到的所有功能就是它能提供的所有功能。

局限性且放一旁,SQL Server附帶提供的這款工具為那些希望得到並能快速運行數據分析的人提供了很好的起點。

④ 在sql語言中,使用什麼語句進行授權

授權命令 grant,語法格式(SQL語句不區分大小寫):

Grant <許可權> on 表名[(列名)] to 用戶 With grant option
如給user1添加查詢的許可權:
grant select on student to user1 With grant option

⑤ sql 授權 ALL

用戶1對用戶2授權select並可傳播授權,用戶2對用戶3授權select並可傳播授權,用戶3對用戶1授權select
構成一個循環授權了,這肯定是會出錯誤的了。
授權是可以成功,但是在撤銷授權過程中就會出現錯誤的。

⑥ sqlSQL資料庫怎麼批量為存儲過程/函數授權

1:右鍵單擊登錄名Test的屬性.

2: 在伺服器角色裡面選擇"public"伺服器角色。

3:在用戶映射選項當中,選擇"db_datareader"、"db_datawriter"、"public"三個資料庫角色成員。

此時,已經實現了擁有DML操作許可權,如果需要擁有存儲過程和函數的執行許可權,必須使用GRANT語句去授權,一個生產庫的存儲過程和函數加起來成千上百,如果手工執行的話,那將是一個辛苦的體力活,而我手頭有十幾個庫,所以必須用腳本去實現授權過程。下面是我寫的一個存儲過程,亮點主要在於會判斷存儲過程、函數是否已經授予了EXE或SELECT許可權給某個用戶。這里主要用到了安全目錄試圖sys.database_permissions,例如,資料庫裡面有個存儲過程dbo.sp_authorize_right,如果這個存儲過程授權給Test用戶了話,那麼在目錄試圖sys.database_permissions裡面會有一條記錄,如下所示:

如果我將該存儲過程授予EXEC許可權給TEST1,那麼
GRANT EXEC ON dbo.sp_diskcapacity_cal TO Test;
GRANT EXEC ON dbo.sp_diskcapacity_cal TO Test1;

SELECT * FROM sys.sysusers WHERE name ='Test' OR name ='Test1'

其實grantee_principal_id代表向其授予許可權的資料庫主體 ID ,所以我就能通過上面兩個視圖來判斷存儲過程是否授予執行許可權給用戶Test與否,同理,對於函數也是如此,存儲過程如下所示,其實這個存儲過程還可以擴展,如果您有特殊的需要的話。

復制代碼 代碼如下:

Code Snippet
USE MyAssistant;
GO
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON
GO
IF EXISTS(SELECT 1 FROM sysobjects WHERE id=OBJECT_ID(N'sp_authorize_right') AND OBJECTPROPERTY(id, 'IsProcere') =1)
DROP PROCEDURE sp_authorize_right;
GO
--=========================================================================================================
-- ProcereName : sp_authorize_right
-- Author : Kerry
-- CreateDate : 2013-05-10
-- Blog : www.cnblogs.com/kerrycode/
-- Description : 將資料庫的所有自定義存儲過程或自定義函數賦權給某個用戶(可以繼續擴展)
/**********************************************************************************************************
Parameter : 參數說明
***********************************************************************************************************
@type : 'P' 代表存儲過程 , 'F' 代表存儲過程,如果需要可以擴展其它對象
@user : 某個用戶賬戶
***********************************************************************************************************
Modified Date Modified User Version Modified Reason
***********************************************************************************************************
2013-05-13 Kerry V01.00.01 排除系統存儲過程和系統函數的授權處理
2013-05-14 Kerry V01.00.02 增加判斷,如果某個存儲過程已經賦予許可權
則不做任何操作
***********************************************************************************************************/
--=========================================================================================================
CREATE PROCEDURE sp_authorize_right
(
@type AS CHAR(10) ,
@user AS VARCHAR(20)
)
AS
DECLARE @sqlTextVARCHAR(1000);
DECLARE @UserId INT;
SELECT @UserId = uid FROM sys.sysusers WHERE name=@user;
IF @type = 'P'
BEGIN
CREATE TABLE #ProcereName( SqlText VARCHAR(max));
INSERT INTO #ProcereName
SELECT 'GRANT EXECUTE ON ' + p.name + ' TO ' + @user + ';'
FROM sys.proceres p
WHERE NOT EXISTS( SELECT 1
FROM sys.database_permissions r
WHERE r.major_id = p.object_id
AND r.grantee_principal_id = @UserId
AND r.permission_name IS NOT NULL )
SELECT * FROM #ProcereName;
--SELECT 'GRANT EXECUTE ON ' + NAME + ' TO ' +@user +';'
--FROM sys.proceres;
--SELECT 'GRANT EXECUTE ON ' + [name] + ' TO ' +@user +';'
-- FROM sys.all_objects
--WHERE [type]='P' OR [type]='X' OR [type]='PC'
DECLARE cr_procere CURSOR FOR
SELECT * FROM #ProcereName;
OPEN cr_procere;
FETCH NEXT FROM cr_procere INTO @sqlText;
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE(@sqlText);
FETCH NEXT FROM cr_procere INTO @sqlText;
END
CLOSE cr_procere;
DEALLOCATE cr_procere;
END
ELSE
IF @type='F'
BEGIN
CREATE TABLE #FunctionSet( functionName VARCHAR(1000));
INSERT INTO #FunctionSet
SELECT 'GRANT EXEC ON ' + name + ' TO ' + @user + ';'
FROM sys.all_objects s
WHERE NOT EXISTS( SELECT 1
FROM sys.database_permissions p
WHERE p.major_id = s.object_id
AND p.grantee_principal_id = @UserId)
AND schema_id = SCHEMA_ID('dbo')
AND( s.[type] = 'FN'
OR s.[type] = 'AF'
OR s.[type] = 'FS'
OR s.[type] = 'FT'
) ;
SELECT * FROM #FunctionSet;
--SELECT 'GRANT EXEC ON ' + name + ' TO ' + @user +';' FROM sys.all_objects
-- WHERE schema_id =schema_id('dbo')
-- AND ([type]='FN' OR [type] ='AF' OR [type]='FS' OR [type]='FT' );
INSERT INTO #FunctionSet
SELECT 'GRANT SELECT ON ' + name + ' TO ' + @user + ';'
FROM sys.all_objects s
WHERE NOT EXISTS( SELECT 1
FROM sys.database_permissions p
WHERE p.major_id = s.object_id
AND p.grantee_principal_id = @UserId)
AND schema_id = SCHEMA_ID('dbo')
AND( s.[type] = 'TF'
OR s.[type] = 'IF'
) ;
SELECT * FROM #FunctionSet;
--SELECT 'GRANT SELECT ON ' + name + ' TO ' + @user +';' FROM sys.all_objects
-- WHERE schema_id =schema_id('dbo')
-- AND ([type]='TF' OR [type]='IF') ;
DECLARE cr_Function CURSOR FOR
SELECT functionName FROM #FunctionSet;
OPEN cr_Function;
FETCH NEXT FROM cr_Function INTO @sqlText;
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT(@sqlText);
EXEC(@sqlText);
FETCH NEXT FROM cr_Function INTO @sqlText;
END
CLOSE cr_Function;
DEALLOCATE cr_Function;
END
GO

⑦ sql2000資料庫授權

也許是你家電腦里SQL2000沒有授權,微軟的SQL2000是收費軟體。

另外可能是導入導出步驟問題。
可以參考下面的教程

導出導入SQL Server里某個資料庫
1.在SQL Server企業管理器里選中要轉移的資料庫,按滑鼠右鍵,選所有任務->備份資料庫。
2.備份 選資料庫-完全,
目的 備份到 按添加按鈕
文件名 在SQL Server伺服器硬碟下輸入一個自定義的備份資料庫文件名(後綴一般是bak)
重寫 選重寫現有媒體
最後按確定按鈕。
如果生成的備份資料庫文件大於1M,要用壓縮工具壓縮後再到Internet上傳輸。
3.通過FTP或者remote desktop或者pcanywhere等方法
把第二步生成的備份資料庫文件或者其壓縮後的文件傳到目的SQL Server資料庫,如果有壓縮要解壓。
4.目的SQL Server資料庫如果還沒有此資料庫,先創建一個新的資料庫;
然後選中這個新創建的資料庫,按滑鼠右鍵,選所有任務->還原資料庫
還原->從設備->選擇設備->磁碟->添加(找到要導入的備份資料庫文件名)->確定
還原備份集->資料庫-完全
最後按確定按鈕。完全的資料庫導入成功了。
(如果在已經存在的SQL Server資料庫上還原資料庫可能遇到有還有其它人正在使用它而恢復操做失敗,
可以去看 ->管理->當前活動->鎖/對象->找到資料庫下鎖的進程號->到查詢分析器里用kill 進程號殺掉這些鎖,然後再做還原)
注意:如果在原有的目的SQL Server資料庫上從備份文件(*.bak)還原資料庫會把已經存在的表、存儲過程等資料庫對象全部替換成最近這次導入的備份資料庫里的內容。
如果一定要還原備份文件(*.bak)里部分數據,需要另外建一個新資料庫,其邏輯名稱和數量同備份文件(*.bak)里資料庫的邏輯名稱和數量一致;
新資料庫的物理文件名稱取得一定要和備份文件(*.bak)里資料庫的物理文件不一樣才行。

⑧ sql2008資料庫的兩種授權的區別。

第二種分別授予了user與role的select許可權,然後收回了role的許可權,並沒有收回user個體的許可權
所以user仍然具有select查詢許可權

⑨ 資料庫SQL語言怎麼授權

SQL語言用GRANT語句向用戶授予操作許可權,GRANT語句的一般格式為:
GRANT <許可權>[,<許可權>]...
[ON <對象類型> <對象名>]
TO <用戶>[,<用戶>]...
[WITH GRANT OPTION];
其語義為:將對指定操作對象的指定操作許可權授予指定的用戶。
不同類型的操作對象有不同的操作許可權,常見的操作許可權如表3-4所示。

表3-4 不同對象類型允許的操作許可權

對象 對象類型 操作許可權
屬性列 TABLE SELECT, INSERT, UPDATE, DELETE ALL PRIVIEGES
視圖 TABLE SELECT, INSERT, UPDATE, DELETE ALL PRIVIEGES
基本表 TABLE SELECT, INSERT, UPDATE, ALTER, INDEX,DELETE ALL PRIVIEGES
資料庫 DATABASE CREATETAB

詳細信息…
接受許可權的用戶可以是一個或多個具體用戶,也可以是PUBLIC即全體用戶。
如果指定了WITH GRANT OPTION子句,則獲得某種許可權的用戶還可以把這種許可權再授予別的用戶。如果沒有指定WITH GRANT OPTION子句,則獲得某種許可權的用戶只能使用該許可權,但不能傳播該許可權。

例1
把查詢Student表許可權授給用戶U1
GRANT SELECT ON TABLE Student TO U1;

例2
把對Student表和Course表的全部許可權授予用戶U2和U3
GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3;

例3
把對表SC的查詢許可權授予所有用戶
GRANT SELECT ON TABLE SC TO PUBLIC;

例4
把查詢Student表和修改學生學號的許可權授給用戶U4
詳細信息…
這里實際上要授予U4用戶的是對基本表Student的SELECT許可權和對屬性列Sno的UPDATE許可權。授予關於屬性列的許可權時必須明確指出相應屬性列名。完成本授權操作的SQL語句為:
GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;

例5
把對表SC的INSERT許可權授予U5用戶,並允許他再將此許可權授予其他用戶
GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;
詳細信息…
執行此SQL語句後,U5不僅擁有了對表SC的INSERT許可權,還可以傳播此許可權,即由U5用戶發上述GRANT命令給其他用戶。

例如U5可以將此許可權授予U6:
GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION;
同樣,U6還可以將此許可權授予U7:
GRANT INSERT ON TABLE SC TO U7;
因為U6未給U7傳播的許可權,因此U7不能再傳播此許可權。

例6
DBA把在資料庫S_C中建立表的許可權授予用戶U8
GRANT CREATETAB ON DATABASE S_C TO U8;

⑩ sql資料庫如何收費/授權

SQL Server、Oracle、MySQL,商業使用都是收費的。小公司不規范,可能一直在免費用,這個不在討論之列,但是,談到商業使用的費用,我們來做個大致的比較:

就比較 1CPU + 50 Client Access License ,而且都用企業版的情況吧:

SQL Server:我看到的數據是最新的SQL Server 2012 Enterprise的價格,是:人民幣 12萬出頭

Oracle:我是間接地得到數據的,價格為:人民幣 56.3萬

MySQL:不詳。價格可能為5000到10000美元,合 3萬五到7萬人民幣,但是,請注意,這是每年的費用。

如果誰有更准確的數據來源,請回帖指出,最好是官方的權威數據。多謝,定將送分感謝。