全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1430
推到 Plurk!
推到 Facebook!

如何讓使用者只能下select命令,而無法使用delete,insert,update?

尚未結案
kartan_01
一般會員


發表:42
回覆:60
積分:20
註冊:2004-12-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-02 16:25:11 IP:61.221.xxx.xxx 未訂閱
我寫了一個可以下SQL語法的小程式 可是該怎麼讓使用者只能select資料出來 無法修改資料庫內的資料?    
try
  ds:=system.Data.DataSet.Create;      self.Sql_EXCEL.CommandText:=self.TextBox1.Text;      self.SqlDataAdapter1.Fill(ds,'sqlcommand');
  
  self.DataGrid1.SetDataBinding(ds,'sqlcommand');      self.StatusBar1.Text:='共有' ds.Tables['sqlcommand'].Rows.Count.tostring '筆資料';      except         on ex: Exception do messagebox.Show(ex.Message,'提示');       end;    
ATEIN
高階會員


發表:105
回覆:320
積分:125
註冊:2002-07-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-04 18:29:12 IP:203.204.xxx.xxx 未訂閱
引言: 我寫了一個可以下SQL語法的小程式 可是該怎麼讓使用者只能select資料出來 無法修改資料庫內的資料?
try
  ds:=system.Data.DataSet.Create;      self.Sql_EXCEL.CommandText:=self.TextBox1.Text;      self.SqlDataAdapter1.Fill(ds,'sqlcommand');
  
  self.DataGrid1.SetDataBinding(ds,'sqlcommand');      self.StatusBar1.Text:='共有' ds.Tables['sqlcommand'].Rows.Count.tostring '筆資料';      except         on ex: Exception do messagebox.Show(ex.Message,'提示');       end;    
引言: Delph 2005 Migration 筆記 http://huanlin.dyndns.org/michael/category/1.aspx
寫錯地方了,SORRY 請使用資料庫的權限控制語言,DCL 即可設定權限 或者到SQL圖形介面中,去設定.亦可 DHM
------
ATEIN
kartan_01
一般會員


發表:42
回覆:60
積分:20
註冊:2004-12-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-06 08:39:13 IP:218.164.xxx.xxx 未訂閱
請問我可以利用StatementType來做判斷嗎? 如果可以,該怎麼用? http://msdn.microsoft.com/library/cht/default.asp?url=/library/CHT/cpref/html/frlrfsystemdatacommonrowupdatingeventargsclassstatementtypetopic.php
ATEIN
高階會員


發表:105
回覆:320
積分:125
註冊:2002-07-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-07 22:19:03 IP:203.204.xxx.xxx 未訂閱
forExample: switch (e.StatementType) { case StatementType.Delete: Debug.WriteLine("Delete Command Finished"); break; case StatementType.Insert: Debug.WriteLine("Insert Command Finished"); break; case StatementType.Update: Debug.WriteLine("Update Command Finished"); break; default: Debug.WriteLine("Unknown Command Finished"); break; private void OnRowUpdating(object sender, OleDbRowUpdatingEventArgs e) { switch (e.StatementType) { case StatementType.Delete: Debug.WriteLine("Delete Command Started"); break; case StatementType.Insert: Debug.WriteLine("Insert Command Started"); break; case StatementType.Update: Debug.WriteLine("Update Command Started"); break; default: Debug.WriteLine("Unknown Command Started"); break; } DHM
------
ATEIN
ATEIN
高階會員


發表:105
回覆:320
積分:125
註冊:2002-07-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-04-07 22:38:21 IP:203.204.xxx.xxx 未訂閱
不然也可用DCL控制如下 1.先建立一個權限控制名稱空間及控制類別,可以再使用,直接用sqlcommand控制下達SQL指令 2.EX: 如:ORDER TABLE 裡FIELDS(ODNO,PRICE,CUNO,PDNO) 要可讓 JAME 及 JESS 兩個[更新],[刪除] 請下達以下SQL指令(select/insert/update/delete) grant ]update,delete on ORDER(ODNO,PRICE,CUNO,PDNO) to JAME,JESS 若希望讓所有人查詢:可下SQL如下 grant select on ORDER to public with grant option 取回使用權限如下: revoke all on ORDER from JAME ,JESS 取回JAME ,JESS 兩人的使用權限 revoke select on ORDER from JAME ,JESS 取回select 權限 revoke delete on ORDER from JAME ,JESS 取回delete 權限 .... .... 類推即可 delete ...可用?號做參數 使用者 ...可用?號做參數... DHM 發表人 - atein 於 2005/04/07 22:42:27
------
ATEIN
系統時間:2024-05-19 9:36:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!