資料庫SQL的資料控制語句DCL的GRANT

時間 2022-02-12 14:45:19

1樓:匿名使用者

我用的是xp的,但是操作是一樣的!希望有用。。。。。1.用windows2000的administrator(系統管理員)使用者登入系統,建立乙個新使用者dcl,使用者名稱和口令都相同。

開啟控制面板——>使用者帳戶——>新增新使用者 建立dcl使用者2. 開啟資料庫sql server 2000的查詢分析器,用grant語句將all privileges的系統特權授給使用者dcl。開啟查詢分析器前需先開啟服務管理器,不然無法連線!(1)將windows的使用者帳戶dcl新增到sql server的登陸賬號中 開啟查詢分析器,輸入sp_grantlogin 'china-757cc68b5\dcl' 回車 go 其中china-757cc68b5需換為你的計算機名稱,右擊我的電腦 屬性 可以檢視!

sql server 的登陸賬號只有成為某個資料庫的使用者時,才有對該資料庫的訪問許可權,每個登陸賬號在乙個資料庫中只能有乙個賬號與之對應!而all privileges是對資料的操作,所以要賦予其all privileges許可權必須使賬號成為某資料庫使用者!(2)將sql server的登陸賬號dcl新增到資料庫master(可任選,但注意選其他的,輸入內容就得改) 的使用者,使用者名為「user1」開啟查詢分析器 輸入 use master 回車 go 回車 sp_grantdbaccess 'china-757cc68b5\dcl','user1' 回車 go 截圖如下 china-757cc68b5依然需改為你的電腦名 (3)現在用grant語句將all privileges的系統特權授給使用者dcl。

因為all privileges是資料的許可權只能給表,systypes為master下的一張表!user1為dcl在資料庫master中的使用者名稱! 3. 登出使用者administrator,用dcl登入系統,開啟資料庫sql server 2000的查詢分析器,用create database語句建立乙個新的資料庫dcldemo(1)先賦予user1(dcl在資料庫中的使用者名稱)建立資料庫的許可權(2)登出 administrator以dcl使用者登陸,開啟查詢分析器輸入create database dcldemoon (name=student_data,filename='e:

\sql_data\student_data.mdf',size=10mb,maxsize=50mb,filegrowth=10%)log on(name=student_log,filename='e:\sql_data\student_log.

ldf',size=2mb,maxsize=5mb,filegrowth=1mb)解釋:建立前需先在e盤根目錄下建立sql_data資料夾!以上命令包含邏輯檔名,初始大小,最大大小,增長方式(按10%增長,按1mb增長!

),以及日誌檔案的相應內容!

2樓:匿名使用者

1. 利用企業管理器建立u1,u2,u3,u4,u5,u6,u7,u8使用者,利用查詢分析器對這些使用者進行授權。並加以驗證.

1) 把查詢student表的許可權授給使用者u1.2) 把對student表和course表的全部操作許可權授予使用者u2和u33) 把對錶sc的查詢許可權授予所有使用者.4) 把查詢student表和修改學生學號的許可權授給使用者u45) 把對錶sc的insert許可權授予u5使用者,並允許將此許可權再授予其他使用者6) dba把在scmanage中建立表的許可權授予使用者u82.

利用查詢分析器對這些使用者進行收權.並加以驗證.1) 把使用者u4修改學生學號的許可權收回2) 收回所有使用者對錶的查詢許可權3) 把擁護u5對sc表的insert 許可權收回 5.

登出使用者dcl,用administrator登入系統,用revoke語句將使用者dcl在表abc中修改a1的權利收回。6.將sql語句存檔備查

用sql的grant語句完成以下授權定義或訪問控制功能。 50

3樓:

用儲存過程用檢視或用表的許可權都可實現

a. 授予語句許可權

下面的示例給使用者 mary 和 john 以及 windows nt 組 corporate\bobj 授予多個語句許可權。

grant create database, create table

to mary, john, [corporate\bobj]

b. 在許可權層次中授予物件許可權

下例顯示許可權的優先順序。首先,給 public 角色授予 select 許可權。然後,將特定的許可權授予使用者 mary、john 和 tom。

於是這些使用者就有了對 authors 表的所有許可權。

use pubs

gogrant select

on authors

to public

go grant insert, update, delete

on authors

to mary, john, tom

goc. 給 sql server 角色授予許可權

下面的示例將 create table 許可權授予 accounting 角色的所有成員。

grant create table to accounting

d. 用 as 選項授予許可權

使用者 jean 擁有表 plan_data。jean 將表 plan_data 的 select 許可權授予 accounting 角色(指定 with grant option 子句)。使用者 jill 是 accounting 的成員,他要將表 plan_data 上的 select 許可權授予使用者 jack,jack 不是 accounting 的成員。

因為對錶 plan_data 用 grant 語句授予其他使用者 select 許可權的許可權是授予 accounting 角色而不是顯式地授予 jill,不能因為已授予 accounting 角色中成員該許可權,而使 jill 能夠授予表的許可權。jill 必須用 as 子句來獲得 accounting 角色的授予許可權。

/* user jean */

grant select on plan_data to accounting with grant option

/* user jill */

grant select on plan_data to jack as accounting

更多的請參考聯機幫助

4樓:匿名使用者

1,寫乙個儲存過程,再grant exec 權力給使用者

2,grant alter權力

3,寫乙個檢視,再 grant select

sql的grant語句用法 5

5樓:

grant

名稱grant — 賦予乙個使用者,乙個組或所有使用者訪問許可權

grant privilege [, ...] on object [, ...]

to 輸入

privilege

可能的許可權有:

select

訪問宣告的表/檢視的所有列/字段.

insert

向宣告的表中插入所有列欄位.

update

更新宣告的所有列/字段.

delete

從宣告的表中刪除所有行.

rule

在表/檢視上定義規則 (參見 create rule 語句).

all賦予所有許可權.

object

賦予許可權的物件名.可能的物件是:

table (表)

view (檢視)

sequence (序列)

index (索引)

public

代表是所有使用者的簡寫.

group group

將要賦予許可權的組 group .目前的版本中,組必須是用下面方法顯式建立的.

username

將要賦予許可權的使用者名稱.public 是代表所有使用者的簡寫.

輸出change

如果成功,返回此資訊.

error: changeacl: class "object" not found

如果所宣告的物件不可用或不可能對宣告的組或使用者賦予許可權.

描述grant 允許物件的建立者給某使用者或某組或所有使用者(public)某些特定的許可權.物件建立後,除了建立者外,除非建立者賦予(grant)許可權,其他人沒有訪問物件的許可權.

一旦使用者有某物件的許可權,他就可以使用那個特權.不需要給建立者賦予(grant)物件的許可權,建立者自動擁有物件的所有許可權,包括刪除它的許可權.

注意目前,要想在 postgres 裡面只賦予幾列許可權,你必須建立乙個包含那幾列的檢視(view),然後把許可權賦予那幾個檢視。

使用 psql \z 命令獲取關於現存物件許可權的更多資訊:

database = lusitania

| relation | grant/revoke permissions |

| mytable | |

legend:

uname=arwr -- privileges granted to a user

group gname=arwr -- privileges granted to a group

=arwr -- privileges granted to public

r -- select

w -- update/delete

a -- insert

r -- rule

arwr -- all

小技巧: 目前,要建立乙個 group (組), 你將不得不手工向表 pg_group 中插入資料,像:

insert into pg_group values ('todos');

create user miriam in group todos;

參考 revoke 語句重新分配訪問許可權.

用法給所有使用者向表 films 插入記錄的許可權:

grant insert on films to public;

賦予使用者 manuel 操作檢視 kinds 的所有許可權:

grant all on kinds to manuel;

相容性sql92

sql92 grant 語法允許對錶中的某單獨列/字段設定許可權,並且允許設定一許可權以賦予別人相同許可權.

grant privilege [, ...]

on object [ ( column [, ...] ) ] [, ...]

to [ with grant option ]

這些欄位與 postgres 實現是相容的,除了下面一些例外:

privilege

sql92 允許宣告附加的許可權:

select

references

允許在乙個宣告的表的整合約束中使用某些或全部列/字段.

usage

允許使用乙個域,字符集,集合或事務.如果宣告的物件不是表/檢視, privilege 只能宣告為 usage.

object

[ table ] table

sql92 允許乙個附加的非函式關鍵字 table.

character set

允許使用宣告的字符集.

collation

允許使用宣告的集合序列.

translation

允許使用宣告的字符集轉換.

domain

允許使用宣告的域.

with grant option

允許向別人賦予同樣許可權.

sql資料庫使用者驗證語句,SQL資料庫使用者驗證語句

sql語句 select from tablename where userid userid and userpwd userpass 要不寫在儲存過程裡 set ansi nulls on set quoted identifier on goalter procedure dbo loginp...

SQL資料庫查詢語句問題

簡單點說 inner join 就是 只把連線的表中的資料符合鏈結條件的顯示出來 leftjion 是上面的基礎上 把左邊的表上不符合鏈結條件的資料顯示出來 rightjion 是在innerjoin的基礎上把右邊表的不符合條件的資料顯示出來 還有個fulljoin 把兩邊所有的資料都列出來 舉個例...

mysql資料庫如何執行sql語句

select a drclass1,b drclass2,c drclass3,d drclass4,e drclass5 from teacher where teacherid teacherid create table classname classname char 50 insert i...