huwaaa huwaaa huwaaa (nangis sambil mancal-mancal di warnet karena bingun...) oke deh mas wiliam.. sakalian aja nanyak sama sampean.. kalo saya bertanya mengenai tulisan mas wiliam sesuai dengan kemampuan saya, nanti banyak misunderstanding.. soalnya saya masih newbist sama sql server + delphi. Saya cuma bertanya, apakah aplikasi yang saya buat ini aman (dalam arti tdk ada kesalahan serius dimasa mendatang, karena bug2 yang sampean jelaskan di imel anda) atau tidak.
Saya membuat semacam database untuk perusahaan manufaktur kecil-kecilan (tapi pake sql server, soalnya sekalian belajar), dengan 2 (computer) client yang mengakses data secara remote, dan satu client (komputer) yang juga berfungsi sebagai server. Server yang saya gunakan adalah MS SQL Server 2000 (personal edition sih.. tapi nanti tak ganti yang enterprise). Bahasa yang saya gunakan delphi. Komponen2 yang saya gunakan untuk akses data, adalah TADOStoredProcedure (untuk action dan selection) dan TADOTable (biasaya saya gunakan cuma untuk lookup saja) semua setting dari komponen tersebut adalah default (misal untuk CursorLocation = adUseClient & LockType = ltOptimistic & CursorType = ctStatic. saya sangat mengandalkan SP untuk akses data, baik selection atau action (update,insert dll). asumsi saya mengenai SP: - dengan setting default tsb, jika SP saya melakukan aksi selection, maka hasil selection akan di load di computer client (disimpan di dalam dataset milik sp yang memanggil, bukankah TADOStoredProcedure adalah keturunan dataset? jadi saya tidak menggunakan komponen dataset secara khusus, ADODataset (seperti yang anda kemukakan), untuk menampung hasil query SP. - akses langsung ke data oleh aplikasi client, tidak ada yang saya ijinkan secara langsung ke tabel, kecuali untuk akses yang hanya nanti digunakan untuk lookup, dengan demikian model integrasi antar tabel bisa saya jaga. - eksekusi SP oleh client secara bersama-sama telah ditangani secara baik oleh ms-sql server, sehingga saya ndak perlu nyetting masalah-masalah locking secara mendalam(cukup dengan default,kalau terjadi pengisian NoId yang kembar, yang mengakibatkan kegagalan update atau insert, solusi yang saya berikan cuma mengeksekusi kembali SP tsb, karena didalam sp sudah saya beri perintah agar secara otomatis menambahkan NoId=NoIdterakhir + 1) - dalam aplikasi saya untuk client, saya ndak mau repot-repot mengatur hak akses(tingkat keamanan tidak saya perhatikan, soalnya insyaAllah aman, wong bukan untuk perusahaan besar) karena saya kira, tanpa mengatur itupun, kalo hak aksesnya semua 'sa', sql server dapat berjalan normal untuk lingkungan yang multi user.. demikian pertanyaan saya, jika ada asumsi yang salah mohon diluruskan, jika aplikasi yang saya buat (dengan berdasar asumsi tersebut) dapat membawa kekacauan data yang serius di kemudian hari, mohon sekali untuk menunjukkan dan memberikan solusinya.. begitu saja mas.. matur nuwun. -- mbah ali al-majburi www.ojodiclick.com/foldergakono/raonowebpe.htm On Fri, 10 Oct 2003, William IT wrote: > Oleh William, praktisi Database Server. > > Pembukaan: > ------------ > Tulisan ini berdasarkan MS SQL. Silahkan uji pada database server yg lain > > Store Procedure > ----------------- > SP adalah sekumpulan procedure yg diletakkkan di Server. Tetapi SP (baca: di > MS SQL) mempunyai kelemahan untuk aplikasi Multi User! > > Jika kita login sebagai "SA" maka tabel yg dihasilkan berformat dbo.Tabel_A. > "dbo" adalah database owner. Sedangkan jika kita login sebagai "Andi" maka > tabel yang dihasilkan adalah andi.Tabel_A > > Bug? > ----- > Tetapi ada suatu bug di MS SQL. Misalnya ada file dbo.Tabel_A, dan jika kita > login sebagai "Andi" kemudian kita Cari apakah Tabel_A ada? Maka hasilnya > "Ada". Sehingga jika kita hapus Tabel_A (harus dihapus agar tabel > andi.Tabel_A bisa dibuat oleh select into) maka yg dihapus adalah > dbo.Tabel_A dan membuat file andi.Tabel_A. > Sayangnya MS SQL tidak bisa menerima perintah untuk mencari tabel > andi.Tabel_A, melainkan mencari Tabel_A saja, tidak peduli siapa login name > yang membuat Tabel tersebut. > > Hal ini menjadi masalah serius sebab DB Admin umumnya membuat file dengan > login "SA". > > Tabel Andi dibaca oleh Bambang? > ----------------------------------- > Jika andi.Tabel_A diupayakan bisa diakses oleh user Bambang maka perlu set > attribut pada tabel tersebut. Hal ini cukup rumit untuk lingkungan multi > user, sebab kita harus yakin kepada siapa saja Tabel_A ini boileh diakses? > Bagaimana mengatur mekanisme agar user name Bambang memang layak untuk > diberi akses? Pada database dengan jumlah tabel dan user masing-masing 10 > hal ini cukup menyulitkan seorang DB Admin. > Sehingga umumnya DB Admin dan Programmer lebih memilih untuk membuat file > dbo.Tabel_A daripada andi.Tabel_A, karena dimungkinkan untuk memberikan > perintah "SELECT INTO dbo.Tabel_A FROM ....." > > Solusi > ------ > Secara umum programmer Delphi memilih Dataset untuk menampung hasil Query, > misalnya pakai AdoDataset. Dengan demikian tercipta lingkungan multiuser > karena masing2 hasil Query ada di Client. > Jadi, berhati-hatilah menggunakan SP di MS SQL versi 7.0 dan 2K. ------------------------ Yahoo! Groups Sponsor ---------------------~--> Buy Ink Cartridges or Refill Kits for your HP, Epson, Canon or Lexmark Printer at MyInks.com. Free s/h on orders $50 or more to the US & Canada. http://www.c1tracking.com/l.asp?cid=5511 http://us.click.yahoo.com/mOAaAA/3exGAA/qnsNAA/i7folB/TM ---------------------------------------------------------------------~-> Berlangganan: [EMAIL PROTECTED] Stop Berlangganan: [EMAIL PROTECTED] Keluhan Milis(Unbouncing,spam,dll): [EMAIL PROTECTED] Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
