當前位置:首頁 » 編程語言 » sql資料庫表的列許可權
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql資料庫表的列許可權

發布時間: 2022-09-22 18:15:51

A. 資料庫表裡面加列沒有許可權

可能該列為主鍵並設置為自增長。
該列為主鍵並設置為自增長,而你的插入操作,中是select後的結果再insert進去,所以會出現你沒有該列的許可權的限制。暫時去掉該列的自增長屬性,然後再執行插入語句就OK了。

B. 如何設置資料庫的許可權

1、首先用管理員進入資料庫級中的安全性,點擊登錄名,點擊新建登錄名。



C. 用sql語句怎麼設置許可權

SQL是Structured Quevy Language(結構化查詢語言)的縮寫。SQL是專為資料庫而建立的操作命令集,是一種功能齊全的資料庫語言。在使用它時,只需要發出「做什麼」的命令,「怎麼做」是不用使用者考慮的。SQL功能強大、簡單易學、使用方便,已經成為了資料庫操作的基礎,並且現在幾乎所有的資料庫均支持SQL。

##1 二、SQL資料庫數據體系結構

SQL資料庫的數據體系結構基本上是三級結構,但使用術語與傳統關系模型術語不同。在SQL中,關系模式(模式)稱為「基本表」(base table);存儲模式(內模式)稱為「存儲文件」(stored file);子模式(外模式)稱為「視圖」(view);元組稱為「行」(row);屬性稱為「列」(column)。名稱對稱如^00100009a^:

##1 三、SQL語言的組成

在正式學習SQL語言之前,首先讓我們對SQL語言有一個基本認識,介紹一下SQL語言的組成:

1.一個SQL資料庫是表(Table)的集合,它由一個或多個SQL模式定義。

2.一個SQL表由行集構成,一行是列的序列(集合),每列與行對應一個數據項。

3.一個表或者是一個基本表或者是一個視圖。基本表是實際存儲在資料庫的表,而視圖是由若干基本表或其他視圖構成的表的定義。

4.一個基本表可以跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表。每個存儲文件與外部存儲上一個物理文件對應。

5.用戶可以用SQL語句對視圖和基本表進行查詢等操作。在用戶角度來看,視圖和基本表是一樣的,沒有區別,都是關系(表格)。

6.SQL用戶可以是應用程序,也可以是終端用戶。SQL語句可嵌入在宿主語言的程序中使用,宿主語言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada語言等。SQL用戶也能作為獨立的用戶介面,供交互環境下的終端用戶使用。

##1 四、對資料庫進行操作

SQL包括了所有對資料庫的操作,主要是由4個部分組成:

1.數據定義:這一部分又稱為「SQL DDL」,定義資料庫的邏輯結構,包括定義資料庫、基本表、視圖和索引4部分。

2.數據操縱:這一部分又稱為「SQL DML」,其中包括數據查詢和數據更新兩大類操作,其中數據更新又包括插入、刪除和更新三種操作。

3.數據控制:對用戶訪問數據的控制有基本表和視圖的授權、完整性規則的描述,事務控制語句等。

4.嵌入式SQL語言的使用規定:規定SQL語句在宿主語言的程序中使用的規則。

下面我們將分別介紹:

##2 (一)數據定義

SQL數據定義功能包括定義資料庫、基本表、索引和視圖。

首先,讓我們了解一下SQL所提供的基本數據類型:(如^00100009b^)

1.資料庫的建立與刪除

(1)建立資料庫:資料庫是一個包括了多個基本表的數據集,其語句格式為:

CREATE DATABASE <資料庫名> 〔其它參數〕

其中,<資料庫名>在系統中必須是唯一的,不能重復,不然將導致數據存取失誤。〔其它參數〕因具體資料庫實現系統不同而異。

例:要建立項目管理資料庫(xmmanage),其語句應為:

CREATE DATABASE xmmanage

(2) 資料庫的刪除:將資料庫及其全部內容從系統中刪除。

其語句格式為:DROP DATABASE <資料庫名>

例:刪除項目管理資料庫(xmmanage),其語句應為:

DROP DATABASE xmmanage

2.基本表的定義及變更

本身獨立存在的表稱為基本表,在SQL語言中一個關系唯一對應一個基本表。基本表的定義指建立基本關系模式,而變更則是指對資料庫中已存在的基本表進行刪除與修改。

D. 怎麼設置SQL資料庫用戶許可權

設置SQL資料庫用戶許可權的方法如下: 點擊進入資料庫級別的「安全性」、「登錄名」、「新建登錄名」;在「常規」選項卡中,創建登陸名,並設置默認的資料庫;在「用戶映射」選項卡中,勾選需要設置的資料庫,並設置「架構」,點擊「確認」按鈕,完成創建用戶的操作;在「許可權」選項卡中,依次點擊「添加」、「瀏覽」、「選擇對象」;點擊「確認」按鈕後即可。

E. 怎麼設置SQL資料庫用戶許可權

-- sqlserver:一、操作步驟
1.
首先進入資料庫級別的【安全性】-【登錄名】-【新建登錄名】
(圖1:新建登錄名)
2.
在【常規】選項卡中,如下圖所示,創建登陸名,並設置默認的資料庫。
(圖2:設置選項)
3.
在【用戶映射】選項卡中,如下圖所示,勾選需要設置的資料庫,並設置【架構】,點擊【確認】按鈕,完成創建用戶的操作
(圖3:選擇對應資料庫)
4.
現在我們就可以對testlog資料庫中的user表進行許可權的設置了,【表】-【
屬性】
(圖4:選擇對應表)
5.
在【許可權】選項卡中,如下圖所示,依此點擊【添加】-【瀏覽】-【選擇對象】
(圖5:設置訪問表的用戶)
6.
在上面點擊【確認】後,我們就可以下面的列表中找到對應的許可權,如果你還想細化到列的許可權的話,右下角還有一個【列許可權】的按鈕可以進行設置,點擊【確認】按鈕就完成了這些許可權的設置了
(圖6:許可權列表)
7.
現在就使用testuser用戶登陸資料庫了,登陸後如下圖所示,現在只能看到一個表了
(圖7:效果)
二、注意事項
1.
在上面的第3步驟中需要注意:如果這里沒有選擇對應的資料庫的話,之後去testlog資料庫中是找不到testuser。
(圖8:找不到testuser用戶)
2.
在上面的第3步驟,設置完testlog數據後,需要點擊【確認】按鈕,完成創建用戶操作,如果這個時候去設置【安全對象】,是無法在【添加】-【特定對象】-【對象類型】-【登陸名】-【瀏覽】中找到剛剛新建的testuser用戶的。
3.
其實在資料庫級別的【安全性】創建的用戶是屬於全局的,當設置了某個資料庫,比如testlog之後,這個用戶就會出現在這個資料庫的【安全性】列表中。
如果刪除testlog這個用戶,會出現下面的提示。刪除了後,這個用戶就無法登陸了。需要去對應的資料庫中刪除用戶,如果沒有刪除又創建,是會報錯的。
(圖9:刪除testuser用戶)
4.
在第6步的【顯式許可權】列表中,如果選擇了【control】這個選項,那麼在【select】中設置查詢【列許可權】就沒有意義了,查詢就不會受限制了。如果設置【列許可權】,在正常情況下會顯示下圖的報錯信息:
(圖10:效果)
5.
在testlog資料庫的【安全性】-【testuser】-【屬性】-【安全對象】-【添加】-【對象類型】這里有更多關於資料庫級別的一些對象類型可以設置。
(圖11:其它對象類型)

F. 關於SQL server資料庫表中各許可權的具體意思

表 table1
id name
1 張三
2 李四
----------------------
select:查詢
用法:
select * from table1
select * from table1 where name='張三'
select * from table1 where id=1
insert:插入
用法:
insert into table1(name) values('王五')
update:更新
用法:
update table1 set name='張XX' where name ='張三'

delete:刪除
用法:
delete from table1 where name ='李四'
delete from table1

EXEC :
這是嵌入SQL的語法,比如EC就是在C語言裡面增加SQL功能的,除了可以使用所有標準的C語言語法以外,可以使用EXEC SQL(或者$符號)開始的一行書寫SQL語句。

EXEC SQL include sqlca
包含一個文件,類似C、ASP的include語句,把那個文件sqlca的內容包含到當前位置

EXEC SQL BEGIN DECLARE SECTION
開始申明,下面的一段語句將是SQL系統的變數申明語句

EXEC SQL END DECLARE SECTION
申明語句結束

G. 如何判斷sql資料庫創建表許可權

--創建兩個測試表
CREATE TABLE tb1(id int,value int)
INSERT tb1 VALUES(1,10)

CREATE TABLE tb2(id int,value int)
INSERT tb1 VALUES(1,10)

GO
--創建登錄
CREATE LOGIN Liang WITH PASSWORD='[email protected]';

--創建用戶
CREATE USER Liang FROM LOGIN Liang;

--授予用戶對tb1有UPDATE某個列的許可權,tb2隻有SELECT許可權

GRANT UPDATE(value) ON tb1 TO Liang
GRANT SELECT ON tb1 TO Liang
GRANT SELECT ON tb2 TO Liang

GO

--模擬用戶Liang對tb1表進行UPDATE
EXECUTE AS USER='Liang'
UPDATE tb1 SET
value=20
WHERE id=1

REVERT

SELECT * FROM tb1

/*
id value
----------- -----------
1 20

(1 行受影響)

*/

--模擬用戶Liang對tb2表進行UPDATE
EXECUTE AS USER='Liang'
UPDATE tb2 SET
value=20
WHERE id=1

REVERT

/*
消息 229,級別 14,狀態 5,第 23 行
拒絕了對對象 'tb2' (資料庫 'tempdb',架構 'dbo')的 UPDATE 許可權。

*/

GO
--刪除測試
DROP TABLE tb1,tb2
DROP USER Liang
DROP LOGIN Liang

--要控制對資料庫的許可權, 可以參考下面的:
-- 防止訪問他不該訪問的資料庫(總控制,明細還可以控制他對於某個資料庫的具體對象具有的許可權)
--切換到你新增的用戶要控制的資料庫
use 你的庫名
go
--新增用戶
exec sp_addlogin 'test' --添加登錄
exec sp_grantdbaccess N'test' --使其成為當前資料庫的合法用戶
exec sp_addrolemember N'db_owner', N'test' --授予對自己資料庫的所有許可權
--這樣創建的用戶就只能訪問自己的資料庫,及資料庫中包含了guest用戶的公共表
go
--刪除測試用戶
exec sp_revokedbaccess N'test' --移除對資料庫的訪問許可權
exec sp_droplogin N'test' --刪除登錄
如果在企業管理器中創建的話,就用:
企業管理器--安全性--右鍵登錄--新建登錄
常規項
--名稱中輸入用戶名
--身份驗證方式根據你的需要選擇(如果是使用windows身份驗證,則要先在操作系統的用戶中新建用戶)
--默認設置中,選擇你新建的用戶要訪問的資料庫名
伺服器角色項
這個裡面不要選擇任何東西
資料庫訪問項
勾選你創建的用戶需要訪問的資料庫名
資料庫角色中允許,勾選"public","db_ownew"
確定,這樣建好的用戶與上面語句建立的用戶一樣
最後一步,為具體的用戶設置具體的訪問許可權,這個可以參考下面的最簡示例:
--添加只允許訪問指定表的用戶:
exec sp_addlogin '用戶名','密碼','默認資料庫名'
--添加到資料庫
exec sp_grantdbaccess '用戶名'
--分配整表許可權
GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用戶名]
--分配許可權到具體的列
GRANT SELECT , UPDATE ON table1(id,AA) TO [用戶名]

H. sql 怎樣創建表許可權

--創建兩個測試表
CREATE TABLE tb1(id int,value int)
INSERT tb1 VALUES(1,10)

CREATE TABLE tb2(id int,value int)
INSERT tb1 VALUES(1,10)

GO
--創建登錄
CREATE LOGIN Liang WITH PASSWORD='[email protected]';

--創建用戶
CREATE USER Liang FROM LOGIN Liang;

--授予用戶對tb1有UPDATE某個列的許可權,tb2隻有SELECT許可權

GRANT UPDATE(value) ON tb1 TO Liang
GRANT SELECT ON tb1 TO Liang
GRANT SELECT ON tb2 TO Liang

GO

--模擬用戶Liang對tb1表進行UPDATE
EXECUTE AS USER='Liang'
UPDATE tb1 SET
value=20
WHERE id=1

REVERT

SELECT * FROM tb1

/*
id value
----------- -----------
1 20

(1 行受影響)

*/

--模擬用戶Liang對tb2表進行UPDATE
EXECUTE AS USER='Liang'
UPDATE tb2 SET
value=20
WHERE id=1

REVERT

/*
消息 229,級別 14,狀態 5,第 23 行
拒絕了對對象 'tb2' (資料庫 'tempdb',架構 'dbo')的 UPDATE 許可權。

*/

GO
--刪除測試
DROP TABLE tb1,tb2
DROP USER Liang
DROP LOGIN Liang

--要控制對資料庫的許可權, 可以參考下面的:
-- 防止訪問他不該訪問的資料庫(總控制,明細還可以控制他對於某個資料庫的具體對象具有的許可權)
--切換到你新增的用戶要控制的資料庫
use 你的庫名
go
--新增用戶
exec sp_addlogin 'test' --添加登錄
exec sp_grantdbaccess N'test' --使其成為當前資料庫的合法用戶
exec sp_addrolemember N'db_owner', N'test' --授予對自己資料庫的所有許可權
--這樣創建的用戶就只能訪問自己的資料庫,及資料庫中包含了guest用戶的公共表
go
--刪除測試用戶
exec sp_revokedbaccess N'test' --移除對資料庫的訪問許可權
exec sp_droplogin N'test' --刪除登錄
如果在企業管理器中創建的話,就用:
企業管理器--安全性--右鍵登錄--新建登錄
常規項
--名稱中輸入用戶名
--身份驗證方式根據你的需要選擇(如果是使用windows身份驗證,則要先在操作系統的用戶中新建用戶)
--默認設置中,選擇你新建的用戶要訪問的資料庫名
伺服器角色項
這個裡面不要選擇任何東西
資料庫訪問項
勾選你創建的用戶需要訪問的資料庫名
資料庫角色中允許,勾選"public","db_ownew"
確定,這樣建好的用戶與上面語句建立的用戶一樣
最後一步,為具體的用戶設置具體的訪問許可權,這個可以參考下面的最簡示例:
--添加只允許訪問指定表的用戶:
exec sp_addlogin '用戶名','密碼','默認資料庫名'
--添加到資料庫
exec sp_grantdbaccess '用戶名'
--分配整表許可權
GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用戶名]
--分配許可權到具體的列
GRANT SELECT , UPDATE ON table1(id,AA) TO [用戶名]

I. 在SQL Server2000中,用戶訪問表/視圖、列的許可權是什麼

例子如下:
( a )用戶王明對兩個表有SELECT 權力。
GRANT SELECT ON 職工,部門
TO 王明
( b )用戶李勇對兩個表有INSERT 和DELETE 權力。
GRANT INSERT,DELETE ON 職工,部門
TO 李勇
( c ) 每個職工只對自己的記錄有SELECT 權力。
GRANT SELECT ON 職工
WHEN USER()=NAME
TO ALL;
( d )用戶劉星對職工表有SELECT 權力,對工資欄位具有更新權力。
GRANT SELECT,UPDATE(工資) ON 職工
TO 劉星
( e )用戶張新具有修改這兩個表的結構的權力。
GRANT ALTER TABLE ON 職工,部門
TO 張新;
( f )用戶周平具有對兩個表所有權力(讀,插,改,刪數據),並具有給其他用戶授權的權力。
GRANT ALL PRIVILIGES ON 職工,部門
TO 周平
WITH GRANT OPTION;
( g )用戶楊蘭具有從每個部門職工中SELECT 最高工資、最低工資、平均工資的權力,他不能查看每個人的工資。
CREATE VIEW 部門工資 AS
SELECT 部門.名稱,MAX(工資),MIN(工資),AVG(工資)
FROM 職工,部門
WHERE 職工.部門號=部門.部門號
GROUP BY 職工.部門號
GRANT SELECT ON 部門工資
TO 楊蘭;

J. SQL Server怎麼設置表的許可權.

首先,你在建表的時候是有owner的,你就要設置這個owner的許可權。

展開資料庫節點-用戶-用戶名上右鍵看屬性-常規-許可權。

此時顯示目前資料庫中所有表:綠色的對勾就是允許操作。

如果不允許修改,點擊「列」這個按鈕。在彈出窗口中,吧所有列的UPDATE 上點成紅叉子。