menerima "izin select ditolak pada objek" meskipun sudah diberikan
<p>saya seorang programmer, bukan dba ... saya tahu cukup berbahaya.</p><p>saya telah mewarisi database dengan pengguna lawas yang merupakan db\_owner untuk database tersebut. kami tidak dapat menyesuaikan izin pengguna ini untuk tabel, skema, dll yang ada, untuk alasan bisnis, tetapi beberapa tabel baru sedang dibuat, dan saya hanya ingin pengguna ini memiliki akses select pada mereka.</p><p>izin telah ditetapkan untuk pengguna ini untuk tabel ini sehingga semuanya ditolak, kecuali select, yang diatur ke grant.</p><p>namun ketika pengguna ini (dbadmin) mencoba melakukan select pada salah satu tabel ini (accountingaudit), kesalahan ini terjadi:</p><pre><code>the select permission was denied on the object 'accountingaudit', database 'billing', schema 'dbo'. </code></pre><p>saya sudah menjalankan sql ini untuk mencoba dan melihat izin apa yang ditetapkan untuk tabel/pengguna ini:</p><pre><code>select object\_name(major\_id) as object, user\_name(grantee\_principal\_id) as grantee, user\_name(grantor\_principal\_id) as grantor, permission\_name, state\_desc from sys.database\_permissions </code></pre><p>dan inilah yang saya dapatkan:</p><pre><code>accountingaudit dbadmin dbo alter deny accountingaudit dbadmin dbo control deny accountingaudit dbadmin dbo delete deny accountingaudit dbadmin dbo insert deny accountingaudit dbadmin dbo references deny accountingaudit dbadmin dbo select grant accountingaudit dbadmin dbo take ownership deny accountingaudit dbadmin dbo update deny accountingaudit dbadmin dbo view definition deny accountingaudit dbadmin dbo view change tracking deny </code></pre><p>sepertinya itu harusnya bekerja dengan baik?</p><p>panggilan select yang saya buat adalah select * yang sangat mendasar dari accountingaudit, dari dalam ssms. saya tidak melakukan sp\_executesql khusus atau semacamnya.</p><p>saya sudah mencoba memberikan izin secara eksplisit:</p><pre><code>grant select on [dbo].accountingaudit to dbadmin </code></pre><p>ini tidak berpengaruh (mengapa, kueri di atas sudah menunjukkan itu diberikan! ;-)</p><p>saya telah mencari melalui stackoverflow.com dan tempat lain, dan tidak dapat menemukan apa pun yang belum saya coba. saya bertanya-tanya apakah itu ada hubungannya dengan bagaimana pengaturan skema. (pada titik ini saya tahu sedikit tentang skema.)</p><p>ada ide? terima kasih!</p>
<p>saya tidak yakin di sini, tapi saya akan mengambil risiko. saya pikir masalah anda mungkin dengan catatan <code>deny control</code> anda. lihat <a href="http://msdn.microsoft.com/en-us/library/ms188338.aspx">di sini</a> sekitar setengah halaman:</p><p><strong> menolak izin kontrol pada database secara implisit menolak izin connect pada database. prinsipal yang ditolak izin kontrol pada database tidak akan dapat terhubung ke database itu. </strong></p><p>saya menyadari bahwa contoh adalah untuk basis data, tetapi gunakan satu tingkat lagi. a <code>deny control</code> di atas tabel akan menolak <em> semua</em> hak istimewa di atasnya, saya menduga. lakukan <code>revoke control</code> untuk menyingkirkannya dan lihat apakah itu memperbaiki masalah anda.</p><p>jika demikian, anda harus menempatkan pengguna dalam peran basis data atau menolak mereka hak istimewa eksplisit terhadap tabel.</p>
<p>anda bisa mengurutkan kolom ke dalam format menurun dan kemudian hanya mendapatkan nilai dari baris ke-n.</p><p>edit ::</p><p>diperbarui sesuai permintaan komentar.<strong> <em>peringatan</em> </strong>benar-benar belum diuji!</p><pre><code>select dob from (select dob from users order by dob desc) where rowid = 6 </code></pre><p>sesuatu seperti di atas seharusnya bekerja untuk oracle ... anda mungkin harus mendapatkan sintaksnya terlebih dahulu!</p> <p>ini adalah masalah non-sepele yang hampir semua orang memiliki jawaban berbeda: tidak ada cara drupal kanonik untuk menangani pementasan ke dorongan produksi. dries buytaert, orang yang menjalankan pertunjukan drupal, menjadikannya salah satu <a href="http://buytaert.net/state-of-drupal-presentation-march-2011">inisiatif utama drupal 8</a> . tentu saja, drupal 7 baru saja dirilis, jadi akan butuh waktu sebelum itu menghasilkan buah.</p><p>masalahnya dapat dipecah menjadi dua masalah terpisah:</p><ul> <li>konfigurasi pementasan (variabel, tipe konten, bidang, tampilan, dll.)</li> <li>pementasan konten (node, pengguna, dll.)</li> </ul><p>yang pertama dapat sebagian besar ditangani oleh modul <a href="http://drupal.org/project/features">fitur</a> , yang akan mengambil konfigurasi situs anda dan mengubahnya menjadi modul yang dapat anda tambahkan ke instalasi drupal anda: dengan cara ini, anda dapat menambahkannya ke sistem kontrol versi anda dan tidak perlu khawatir akan meledak ketika anda memigrasi konten anda.</p><p>yang terakhir ini sangat rumit, karena di situs yang aktif, kemungkinan konten akan berubah pada produksi bahkan setelah anda melakukan sinkronisasi awal dengan lingkungan pengembangan anda. ini mencegah penggantian konten secara grosir selama pementasan seperti yang dapat anda lakukan dengan konfigurasi.</p><p>selain itu, drupal tidak menggunakan pengidentifikasi unik universal (uuid) untuk konten: setiap kali node atau pengguna ditambahkan, id bertambah satu. jadi, apa yang mungkin node 45 di situs pengembangan anda mungkin node 90 di situs produksi anda.</p><p>sayangnya, saya tidak punya solusi yang bagus untuk ini: pementasan konten adalah kelemahan drupal. apa yang saya pribadi lakukan adalah menambahkan konten hanya di situs produksi. jika klien ingin melihat bagaimana konten terlihat sebelum ditayangkan, saya akan membuat klon dari situs produksi yang hanya dapat diakses oleh klien. kemudian, setelah disetujui, perubahan yang sama kemudian dilakukan langsung ke produksi.</p><p>ada alternatif lain yang dilemparkan: modul <a href="http://drupal.org/project/deploy">deploy</a> . seharusnya meningkatkan <a href="http://drupal.org/project/services">layanan</a> untuk membuat konten pementasan relatif tidak menyakitkan. tapi saya tidak bisa menjamin keefektifannya dan tidak memiliki versi drupal 7.</p> <p><strong> apa yang tidak boleh dilakukan </strong></p><blockquote> <p><strong> peringatan:<br> jawaban ini menggunakan <a href="https://en.wikipedia.org/wiki/block\_cipher\_mode\_of\_operation#ecb">ecb</a> . ecb bukan mode enkripsi, ini hanya blok bangunan. menggunakan ecb seperti yang ditunjukkan dalam jawaban ini sebenarnya tidak mengenkripsi string dengan aman. jangan gunakan ecb dalam kode anda. lihat <a href="https://stackoverflow.com/a/30159120">jawaban scott</a> untuk solusi yang baik. </strong></p> </blockquote><p>saya mengerti sendiri. sebenarnya saya menemukan beberapa jawaban di google dan baru saja memodifikasi sesuatu. <strong> hasilnya benar-benar tidak aman. </strong></p><pre><code>&lt;?php define("encryption\_key", "!@#$%^&amp;*"); $string = "this is the original data string!"; echo $encrypted = encrypt($string, encryption\_key); echo "&lt;br /&gt;"; echo $decrypted = decrypt($encrypted, encryption\_key); /** * returns an encrypted &amp; utf8-encoded */ function encrypt($pure\_string, $encryption\_key) { $iv\_size = mcrypt\_get\_iv\_size(mcrypt\_blowfish, mcrypt\_mode\_ecb); $iv = mcrypt\_create\_iv($iv\_size, mcrypt\_rand); $encrypted\_string = mcrypt\_encrypt(mcrypt\_blowfish, $encryption\_key, utf8\_encode($pure\_string), mcrypt\_mode\_ecb, $iv); return $encrypted\_string; } /** * returns decrypted original string */ function decrypt($encrypted\_string, $encryption\_key) { $iv\_size = mcrypt\_get\_iv\_size(mcrypt\_blowfish, mcrypt\_mode\_ecb); $iv = mcrypt\_create\_iv($iv\_size, mcrypt\_rand); $decrypted\_string = mcrypt\_decrypt(mcrypt\_blowfish, $encryption\_key, $encrypted\_string, mcrypt\_mode\_ecb, $iv); return $decrypted\_string; } ?&gt; </code></pre> <p>saya menemukannya: <a href="http://www.linuxquestions.org/questions/linux-desktop-74/applying-default-permissions-for-newly-created-files-within-a-specific-folder-605129/">menerapkan izin default</a> </p><p>dari artikel:</p><pre><code>chmod g+s &lt;directory&gt; //set gid setfacl -d -m g::rwx /&lt;directory&gt; //set group to rwx default setfacl -d -m o::rx /&lt;directory&gt; //set other </code></pre><p>selanjutnya kita dapat memverifikasi:</p><pre><code>getfacl /&lt;directory&gt; </code></pre><p>keluaran:</p><pre><code># file: ../&lt;directory&gt;/ # owner: &lt;user&gt; # group: media # flags: -s- user::rwx group::rwx other::r-x default:user::rwx default:group::rwx default:other::r-x </code></pre> <p>akhirnya, inilah bagaimana saya mengadaptasi dan menempelkan saran dari @tostinni, @stefgosselin, @ uwe999 jawaban dan lainnya:</p><pre><code>/** * implementation of hook\_form\_alter(). */ function custom\_module\_form\_alter(&amp;$form, &amp;$form\_state, $form\_id) { switch ($form\_id) { case 'my\_form\_id': // add custom validation callback $form['#validate'][] = 'custom\_module\_my\_form\_id\_validate'; break; ... default: break; } } </code></pre><p>maka semua fungsi yang saya implementasikan di:</p><pre><code>/** * implementation of hook\_form\_form\_id\_alter */ function custom\_module\_my\_form\_id\_validate(&amp;$form, &amp;$form\_state) { //retrieve the value for your field $value = $form\_state['values']['field\_my\_field']['und'][0]['value']; //execute a count query to see if there's other similar values. $query = new entityfieldquery; $query-&gt;entitycondition('entity\_type', 'field\_collection\_item') -&gt;fieldcondition('field\_my\_field', 'value', $value) -&gt;count(); $count = $query-&gt;execute(); if ($count &gt; 0) { form\_set\_error('field\_my\_field', 'unique field value is already used.'); } } </code></pre><p>saya sudah mencoba bekerja dengan <code>entity\_metadata\_wrapper</code> tapi sayangnya saya belum berhasil.</p><p>terima kasih atas jawaban anda.</p> <p>aha! moment - #\_\_content tidak lagi memiliki kolom <code>params</code>, jadi penyesuaian berikut harus dibuat agar plugin dapat bekerja dengan komponen/tabel dengan <code>attribs</code> alih-alih <code>params</code> (yang tampaknya hanya menjadi #\_\_content pada v3.2):</p><ol> <li>ubah nama <code>fields</code> menjadi "attribs"</li> <li>ubah nama <code>fieldset</code> menjadi sesuatu yang unik (saya menggunakan nama plugin)</li> <li>tambahkan string bahasa untuk tab pada halaman pengeditan konten</li> </ol><p><strong>/ form/content.xml</strong></p><pre><code>&lt;form&gt; &lt;fields name="attribs" &gt; &lt;fieldset name="gdp" &gt; &lt;field name="myfield" type="text" label="plg\_content\_gdp\_myfield" /&gt; &lt;/fieldset&gt; &lt;/fields&gt; &lt;/form&gt; </code></pre><p><strong>en-gb.plg\_content\_pass.ini</strong></p><pre><code>com\_content\_gdp\_fieldset\_label="my custom fields" </code></pre> <p>shmuel613, akan lebih baik untuk memperbarui pertanyaan awal anda daripada menjawab. lebih baik jika ada satu tempat yang berisi pertanyaan lengkap daripada menyebar dalam diskusi.</p><p>jawaban ben masuk akal, kecuali ia tampaknya memiliki 'tidak' di mana ia tidak menginginkannya. menjatuhkan tabel hanya jika<strong> tidak </strong>ada tidak tepat.</p><p>anda memang membutuhkan banyak pernyataan. buat dengan kondisional lalu isi:</p><ol> <li>buat tabel sementara jika tidak ada fubar (id int, name varchar (80))</li> <li>truncate table fubar</li> <li>masukkan ke dalam fubar pilih * dari barfu</li> </ol><p>atau cukup jatuhkan dan buat ulang</p><ol> <li>drop tabel jika ada fubar</li> <li>buat tabel sementara id select fubar, nama dari barfu</li> </ol><p>dengan sql murni itu adalah dua kelas solusi nyata anda. saya suka yang kedua lebih baik.</p><p>(dengan prosedur tersimpan anda bisa menguranginya menjadi satu pernyataan. sesuatu seperti: truncateandpopulate (fubar) tetapi pada saat anda menulis kode untuk truncateandpopulate () anda akan menghabiskan lebih banyak waktu daripada hanya menggunakan sql di atas.)</p> halo agung setiawan,
 tidak bisa, saldo yang terdapat pada akun demo tidak dapat ditarik ataupun diuangkan. akun demo disediakan oleh broker bertujuan untuk memfasilitasi trader pemula sebagai media uji coba trading dengan rill market tanpa takut kehilangan modal sungguhan. perihal mengengenai masalah tarik dana di akun demo sudah pernah diulas di thread ini. silahkan kunjungi juga sebagai referensi bacaan. semoga membantu. <p>pertanyaan bagus! ketika itu terjadi, saya dapat menyajikan data eksperimental tentang pertanyaan ini - dan datanya menarik. (saya perhatikan bahwa beberapa jawaban berisi spekulasi dari prinsip pertama tentang seberapa banyak keamanan yang ditawarkan gambar keamanan ini. namun, data ternyata memiliki beberapa kejutan bagi kita semua!)</p><p><strong> metodologi eksperimental. </strong> "gambar keamanan" telah dievaluasi dalam studi pengguna, dilakukan dengan pengguna biasa yang diminta melakukan perbankan online di lab. tanpa diketahui oleh mereka, beberapa dari mereka 'diserang' dengan cara yang terkendali, untuk melihat apakah mereka akan berperilaku aman atau tidak dan apakah gambar keamanan membantu atau tidak.</p><p>para peneliti mengevaluasi dua serangan:</p><ul> <li> <p>serangan mitm: para peneliti mensimulasikan serangan man-in-the-middle yang menghapus ssl. satu-satunya indikasi serangan yang terlihat adalah kurangnya indikator https (tidak ada https di bilah alamat, tidak ada ikon kunci, dll.).</p> </li> <li> <p>serangan gambar keamanan: para peneliti mensimulasikan serangan phishing. dalam serangan ini, sepertinya pengguna berinteraksi dengan situs bank nyata, kecuali bahwa gambar keamanan tidak ada. sebagai gantinya, serangan menempatkan teks berikut:</p> <blockquote> <p>pemberitahuan mainkey sitekey: bank of america sedang meningkatkan fitur sitekey pemenang penghargaan kami. silakan hubungi layanan pelanggan jika sitekey anda tidak muncul kembali dalam 24 jam ke depan.</p> </blockquote> <p>saya menemukan ini serangan yang brilian. daripada mencoba mencari tahu apa gambar keamanan untuk ditampilkan kepada pengguna, jangan menunjukkan gambar keamanan sama sekali, dan hanya mencoba untuk meyakinkan pengguna bahwa tidak apa-apa bahwa tidak ada gambar keamanan. jangan mencoba mengalahkan sistem keamanan di tempat yang paling kuat; hanya memotong semuanya dengan merusak fondasinya.</p> </li> </ul><p>bagaimanapun, para peneliti kemudian melanjutkan untuk mengamati bagaimana perilaku pengguna ketika mereka diserang dengan cara ini (tanpa sepengetahuan mereka).</p><p><strong> hasil percobaan. </strong> hasilnya? serangan itu sangat sukses.</p><ul> <li> <p>tidak ada satu pengguna pun yang menghindari serangan mitm; setiap orang yang terkena serangan mitm jatuh cinta padanya. (tidak ada yang memperhatikan bahwa mereka diserang.)</p> </li> <li> <p>97% dari mereka yang terkena serangan gambar keamanan jatuh untuk itu. hanya 3% (2 dari 60 peserta) yang berperilaku aman dan menolak untuk masuk ketika terkena serangan ini.</p> </li> </ul><p><strong> kesimpulan. </strong> biarkan saya mencoba untuk mengambil beberapa pelajaran dari percobaan ini.</p><ul> <li> <p>pertama, <em> gambar keamanan tidak efektif</em>. mereka mudah dikalahkan oleh teknik serangan yang sangat sederhana.</p> </li> <li> <p>kedua, ketika menilai mekanisme keamanan apa yang akan efektif, <em> intuisi kami tidak dapat diandalkan</em>. bahkan pakar keamanan profesional dapat menarik kesimpulan yang salah. misalnya, lihat utas ini, di mana beberapa orang telah mengambil pandangan bahwa gambar keamanan menambah keamanan karena mereka memaksa penyerang untuk bekerja lebih keras dan menerapkan serangan mitm. dari percobaan ini, kita dapat melihat bahwa argumen ini tidak tahan air. memang, serangan yang sangat sederhana (mengkloning situs web dan mengganti gambar keamanan dengan pemberitahuan yang mengatakan fitur gambar keamanan saat ini sedang dalam pemeliharaan) sangat berhasil dalam praktiknya.</p> <p>jadi, ketika keamanan suatu sistem tergantung pada bagaimana pengguna akan berperilaku, penting untuk melakukan eksperimen yang ketat untuk mengevaluasi bagaimana pengguna biasa benar-benar akan berperilaku dalam kehidupan nyata. intuisi dan analisis "dari prinsip pertama" kami bukan merupakan pengganti data.</p> </li> <li> <p>ketiga, <em> pengguna biasa tidak berperilaku seperti yang diharapkan oleh petugas keamanan</em>. kadang-kadang kita berbicara tentang protokol sebagai "pengguna akan melakukan ini-dan-itu, maka server akan melakukan ini-dan-itu, dan jika pengguna mendeteksi penyimpangan, pengguna akan tahu dia sedang diserang". tapi bukan itu yang dipikirkan pengguna. pengguna tidak memiliki pola pikir mencurigakan yang dimiliki petugas keamanan, dan keamanan tidak ada di garis depan pikiran mereka. jika ada sesuatu yang tidak beres, seorang pakar keamanan mungkin curiga dia sedang diserang - tetapi itu biasanya bukan reaksi pertama dari pengguna biasa. pengguna biasa begitu terbiasa dengan kenyataan bahwa situs web tidak stabil sehingga reaksi pertama mereka, setelah melihat sesuatu yang aneh atau tidak biasa, sering mengabaikannya dan menganggap bahwa internet (atau situs web) tidak berfungsi dengan baik di saat. jadi, jika mekanisme keamanan anda bergantung pada pengguna untuk menjadi curiga jika isyarat tertentu tidak ada, itu mungkin karena alasan yang lemah.</p> </li> <li> <p>keempat, <em> tidak realistis untuk mengharapkan pengguna memperhatikan tidak adanya indikator keamanan</em>, seperti ikon kunci ssl. saya yakin kita semua bermain "simon says" sebagai seorang anak. kesenangan dari permainan ini sepenuhnya - bahkan ketika anda tahu untuk menjaganya - mudah untuk mengabaikan ketiadaan isyarat "simon says". sekarang pikirkan tentang ikon ssl. mencari ikon ssl bukan tugas utama pengguna, saat melakukan perbankan online; sebaliknya, pengguna biasanya hanya ingin membayar tagihan mereka dan menyelesaikan tugasnya sehingga mereka dapat beralih ke sesuatu yang lebih berguna. betapa jauh lebih mudah untuk gagal menyadari ketidakhadirannya, dalam keadaan itu!</p> </li> </ul><p>omong-omong, anda mungkin bertanya-tanya bagaimana industri perbankan merespons temuan ini. bagaimanapun, mereka menekankan fitur gambar keamanan mereka (dengan berbagai nama pemasaran) kepada pengguna; jadi bagaimana mereka bereaksi terhadap penemuan bahwa fitur gambar keamanan pada dasarnya tidak berguna? jawab: belum. mereka masih menggunakan gambar keamanan. dan jika anda bertanya kepada mereka tentang respons mereka, respons tipikal adalah bentuk "well, pengguna kami benar-benar menyukai dan menghargai gambar keamanan". ini memberi tahu anda sesuatu: itu memberi tahu anda bahwa gambar keamanan sebagian besar merupakan bentuk teater keamanan. mereka ada untuk membuat pengguna merasa nyaman dengan prosesnya, lebih dari sekadar melindungi dari serangan serius.</p><p><strong> referensi. </strong> untuk detail lebih lanjut dari percobaan yang saya rangkum di atas, bacalah makalah penelitian berikut ini:</p><ul> <li> <a href="http://www.hefestus.com/home/emperor.pdf?attredirects=0">indikator keamanan baru kaisar</a> . stuart e. schechter, rachna dhamija, andy ozment, dan ian fischer. ieee security &amp; privacy 2007. (edit: <a href="https://dd72fcf2-a-62cb3a1a-s-sites.googlegroups.com/site/ianfischercv/emperor.pdf?attachauth=anoy7cqijanrnsh713t4wlclulsrwrumv-z5xfa2ir84zunvyescozzylmx1n7n0ehiwcuzz1p4pw7appcpzrxw9t42wqblsgp9bazcmmvn4aizflfgz2me-uut9udirnbzqmhe2j2yabekfaoxuk0q3pvdkcks2ynarlonbhpgouynvog5wqn5wgpzjmgjuutrkbk8hlodqyd5wmyhdxyttjd7dnx\_mow%3d%3d&amp;attredirects=0">tautan yang diperbarui</a> )</li> </ul> <p>coba panggil fungsi ini</p><p> <a href="http://api.drupal.org/api/drupal/modules--node--node.module/function/node\_type\_get\_name/7">node\_type\_get\_name ($ node)</a> </p><blockquote> <p>mengembalikan nama jenis simpul dari simpul yang dikirimkan atau string jenis simpul.</p> </blockquote>