SQL Serverにストアドプロシージャを作成しました。SQL Server 2008でストアドプロシージャのスクリプトを非表示にしたい
これで私は誰にでも自分のスクリプトを見たり編集したりすることは望ましくありません。
私は標準的なログインIDとパスワードに取り組んでいることに注意してください。 これは誰とでも共有されています。
従って私はすべての人が手続きを実行できるようにすることができます。 しかし、彼らはスクリプトを見てはいけません。
乾杯! ありがとう
SQL Serverにストアドプロシージャを作成しました。SQL Server 2008でストアドプロシージャのスクリプトを非表示にしたい
これで私は誰にでも自分のスクリプトを見たり編集したりすることは望ましくありません。
私は標準的なログインIDとパスワードに取り組んでいることに注意してください。 これは誰とでも共有されています。
従って私はすべての人が手続きを実行できるようにすることができます。 しかし、彼らはスクリプトを見てはいけません。
乾杯! ありがとう
あなたはWITH ENCRYPTION
を探している、あなたのストアドプロシージャの背後にあるコードを暗号化:これは、コードを非表示になります。 MSDNから
CREATE PROCEDURE usp_MyProc
WITH ENCRYPTION
AS
SELECT *
FROM myTable
だけ警告:システムテーブルまたはデータベースファイルにアクセスできません
ユーザーは、難読化されたテキストを取得することはできません。ただし、DACポートを介してシステムテーブルにアクセスするか、データベースファイルに直接アクセスできる特権ユーザーは、このテキストを使用できます。
いくつかの参照と、さらに読書:
さらに、SQL Serverの 'WITH ENCRYPTION'は実際には' WITH MINOR_OBFUSCATION'と呼ばれるべきです。あなたが探しているものを知っているなら、システムオブジェクトの解読に役立つ豊富なリソースがあり、特権ユーザーやDACに限定されるものではありません。 –
本当に、それはコードを見ることを決心している人を守るつもりはありませんが、それは大部分の人々を守るでしょう。 –
ストアドプロシージャのキーワードはencryption
です。
CREATE PROCEDURE dbo.foo
WITH ENCRYPTION
AS
BEGIN
SELECT 'foo'
END
誰でもSPを実行できますか?ちょうどコードが隠されている – LearnByReading
それは正しいです。 –
は、SQL Serverは、真にモジュールコードを保護するために絶対確実な方法を提供していません。 WITH ENCRYPTION
句の名前は、WITH LOOSE_OBFUSCATION
の行に沿って何かにする必要があります。これは、「暗号化」が非常に簡単に妨げられるからです。 SQL Serverの何かを使用して、最もカジュアルな見知らぬ人以外の誰もがコードを解読できないようにすることはできません。誰もが汗をかくことなくネイティブメソッドを打ち負かすことができます。
これはあなたのニーズに十分対応しているかもしれませんが、おそらくより安全な方法ですが、まだ完全ではありません。手順のビジネスロジックの一部または全部を入れてください。into the CLR (read more here)
暗号化ではなく、セキュリティを修正する必要があります。誰もが同じ権利で同じログインをしているという言い訳はありません。 – HLGEM