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

sql用戶授權指定列

發布時間: 2022-08-04 06:53:39

⑴ oracle資料庫怎麼授予用戶修改表某一列的許可權,

oracle中給表中指定的列賦許可權的sql語句如下:
比如有用戶joan需要賦給emp表的emp_name操作許可權,寫法如下
GRANT update (emp_name)
ON edwin.emp
TO joan;
如果joan去更新emp表中的salary欄位就會報錯:
update edwin.emp set salary=100000;
ERROR at line 1:
ORA-01031: insufficient privileges

⑵ 用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語言中一個關系唯一對應一個基本表。基本表的定義指建立基本關系模式,而變更則是指對資料庫中已存在的基本表進行刪除與修改。

⑶ SQL語句:GRANT或revoke應該是支持對列的許可權操作的吧,具體應該怎麼寫如以下例

grant UPDATE on 表名 (列名) to 用戶名
這樣

問題2,資料庫裡面的許可權作用范圍在本資料庫,如果是伺服器許可權的話就是該伺服器羅,一般不用特別指定

⑷ 對已登錄用戶帳戶進一步授權訪問所設計的資料庫中的某些表的SQL語句怎麼寫急~~

用grant語句
如果是sql server的話 你可以在聯機叢書中查詢grant 裡面有很詳細的解答
下例顯示許可權的優先順序。首先,給 public 角色授予 SELECT 許可權。然後,將特定的許可權授予用戶 Mary、John 和 Tom。於是這些用戶就有了對 authors 表的所有許可權。

USE pubs
GO

GRANT SELECT
ON authors
TO public
GO

GRANT INSERT, UPDATE, DELETE
ON authors
TO Mary, John, Tom
GO

GRANT
在安全系統中創建項目,使當前資料庫中的用戶得以處理當前資料庫中的數據或執行特定的 Transact-SQL 語句。

語法
語句許可權:

GRANT { ALL | statement [ ,...n ] }
TO security_account [ ,...n ]

對象許可權:

GRANT
{ ALL [ PRIVILEGES ] | permission [ ,...n ] }
{
[ ( column [ ,...n ] ) ] ON { table | view }
| ON { table | view } [ ( column [ ,...n ] ) ]
| ON { stored_procere | extended_procere }
| ON { user_defined_function }
}
TO security_account [ ,...n ]
[ WITH GRANT OPTION ]
[ AS { group | role } ]

參數
ALL

表示授予所有可用的許可權。對於語句許可權,只有 sysadmin 角色成員可以使用 ALL。對於對象許可權,sysadmin 和 db_owner 角色成員和資料庫對象所有者都可以使用 ALL。

statement

是被授予許可權的語句。語句列表可以包括:

CREATE DATABASE

CREATE DEFAULT

CREATE FUNCTION

CREATE PROCEDURE

CREATE RULE

CREATE TABLE

CREATE VIEW

BACKUP DATABASE

BACKUP LOG
n

一個佔位符,表示此項可在逗號分隔的列表中重復。

TO

指定安全帳戶列表。

security_account

是許可權將應用的安全帳戶。安全帳戶可以是:

Microsoft® SQL Server™ 用戶。

SQL Server 角色。

Microsoft Windows NT® 用戶。

Windows NT 組。
當許可權被授予一個 SQL Server 用戶或 Windows NT 用戶帳戶,指定的 security_account 是許可權能影響到的唯一帳戶。若許可權被授予 SQL Server 角色或 Windows NT 組,許可權可影響到當前資料庫中該組或該角色成員的所有用戶。若組或角色和它們的成員之間存在許可權沖突,最嚴格的許可權 (DENY) 優先起作用。security_account 必須在當前資料庫中存在;不可將許可權授予其它資料庫中的用戶、角色或組,除非已為該用戶在當前資料庫中創建或給予了訪問許可權。

兩個特殊的安全帳戶可用於 GRANT 語句。授予 public 角色的許可權可應用於資料庫中的所有用戶。授予 guest 用戶的許可權可為所有在資料庫中沒有用戶帳戶的用戶使用。

當授予某個 Windows NT 本地組或全局組許可權時,請指定在其上定義該組的域名或計算機名,然後依次輸入反斜線和組名。但是,若要授予訪問 Windows NT 內置本地組的許可權,請指定 BUILTIN 而不是域名或計算機名。

PRIVILEGES

是可以包含在符合 SQL-92 標準的語句中的可選關鍵字。

permission

是當前授予的對象許可權。當在表、表值函數或視圖上授予對象許可權時,許可權列表可以包括這些許可權中的一個或多個:SELECT、INSERT、DELETE、REFENENCES 或 UPDATE。列列表可以與 SELECT 和 UPDATE 許可權一起提供。如果列列表未與 SELECT 和 UPDATE 許可權一起提供,那麼該許可權應用於表、視圖或表值函數中的所有列。

在存儲過程上授予的對象許可權只可以包括 EXECUTE。在標量值函數上授予的對象許可權可以包括 EXECUTE 和 REFERENCES。

為在 SELECT 語句中訪問某個列,該列上需要有 SELECT 許可權。為使用 UPDATE 語句更新某個列,該列上需要有 UPDATE 許可權。

為創建引用某個表的 FOREIGN KEY 約束,該表上需要有 REFERENCES 許可權。

為使用引用某個對象的 WITH SCHEMABINDING 子句創建 FUNCTION 或 VIEW,該對象上需要有 REFERENCES 許可權。

column

是當前資料庫中授予許可權的列名。

table

是當前資料庫中授予許可權的表名。

view

是當前資料庫中被授予許可權的視圖名。

stored_procere

是當前資料庫中授予許可權的存儲過程名。

extended_procere

是當前資料庫中授予許可權的擴展存儲過程名。

user_defined_function

是當前資料庫中授予許可權的用戶定義函數名。

WITH GRANT OPTION

表示給予了 security_account 將指定的對象許可權授予其它安全帳戶的能力。WITH GRANT OPTION 子句僅對對象許可權有效。

AS {group | role}

指當前資料庫中有執行 GRANT 語句權力的安全帳戶的可選名。當對象上的許可權被授予一個組或角色時使用 AS,對象許可權需要進一步授予不是組或角色的成員的用戶。因為只有用戶(而不是組或角色)可執行 GRANT 語句,組或角色的特定成員授予組或角色權力之下的對象的許可權。

詳細的可以參見sql server的連接叢書!

⑸ 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設置只具有查詢某列特定欄位的權力

我一般是這樣處理的,先創建一個視圖,查詢出這個視圖中屬於03物流1
的學生信息,再給用戶U2賦許可權,讓U2用戶只能查詢這個視圖

⑺ 如何用SQL語句為指定用戶授權

指定資料庫,需要有所有表查詢許可權和視圖創建許可權use[database]Grantselectto[userName]GRANTCREATEVIEWTO[userName]

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

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

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

⑼ SQL 授權問題

用戶1對用戶2授權select並可傳播授權,用戶2對用戶3授權select並可傳播授權,用戶3對用戶1授權select 構成一個循環授權了,這肯定是會出錯誤的了。

授權是可以成功,但是在撤銷授權過程中就會出現錯誤的。

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

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

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

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