開発者の皆さん、こんにちは!
InterSystems セキュリティコンテスト は終了し、投票結果が発表されました!
この記事では、コンテスト受賞者を発表します!
受賞された開発者の皆さん、👏おめでとうございます!🎊
開発者の皆さん、こんにちは!
InterSystems セキュリティコンテスト は終了し、投票結果が発表されました!
この記事では、コンテスト受賞者を発表します!
受賞された開発者の皆さん、👏おめでとうございます!🎊
キーワード: ディープラーニング、Grad-CAM、X線、COVID-19、HealthShare、IRIS
イースターウィークエンド中に、Covid-19に感染した胸部X線画像分類とCT検出デモを実行するを触ってみました。 デモの結果は上出来で、このトピックに関するその頃の学術研究出版物に一致しているようでした。 でも、本当に「上出来」と言えるのでしょうか。
最近、「機械学習における説明可能性」に関するオンラインランチウェビナーを聴くことがあったのですが、たまたまその講演の最後でDonがこの分類結果について話していました。

上図は研究論文にも示されています。『“Why Should I Trust You?” Explaining the Predictions of Any Classifier』という論文です。 分類器は実際に、ペットの犬か野生の狼に分類するための主な入力として、雪といった自然環境などの背景ピクセルを取るようにトレーニングされていることがわかります。
これを見て、私は以前から持っていた関心を思い出しました。このやり方に、確かに好奇心を掻き立てられます。
InterSystems 製品のキットには Apache Web サーバが含まれています。
これにより、お客様が外部Webサーバをインストールせずに Caché/IRIS 管理ポータルを動作させる為の便利な方法を提供しています。
ただし、このWebサーバを実稼働インスタンスに使用しないでください。お客様は、システムに応じたニーズとセキュリティ/リスク要件に適合するWebサーバを別途インストールする必要があります。
最近のテストでは、現在含まれている Apache Web サーバにいくつかのセキュリティ問題があることがわかっていますが InterSystems が管理していないテクノロジである為、
InterSystems は、Apache または別のサードパーティから直接取得した Web サーババージョンをインストールし、付属の Apache Webサーバ を無効にすることをお勧めします。
InterSystems は、今後のリリースに Apache Web サーバの新しいバージョンを含める予定です。
現在のバージョンと同様に、そのバージョンも本番インスタンスには使用できません。
当社の製品の将来のリリースでは、InterSystems はWeb サーバを同梱またはインストールしません。
計画の詳細については、今後、更新情報を提供する予定です。
キーワード: COVID-19、医用画像、ディープラーニング、PACSビューア、HealthShare。
私たちは皆、この前例のないCovid-19パンデミックに悩まされています。 現場のお客様をあらゆる手段でサポートする一方で、今日のAI技術を活用して、Covid-19に立ち向かうさまざまな前線も見てきました。
昨年、私はディープラーニングのデモ環境について少し触れたことがあります。 この長いイースターの週末中に、実際の画像を扱ってみてはどうでしょうか。Covid-19に感染した胸部X線画像データセットに対して簡単な分類を行うディープラーニングモデルをテスト実行し、迅速な「AIトリアージ」や「放射線科医の支援」の目的で、X線画像やCT用のツールがdockerなどを介してクラウドにどれほど素早くデプロイされるのかを確認してみましょう。
これは、10分程度の簡易メモです。学習過程において、最も単純なアプローチでハンズオン経験を得られることを願っています。
このデモ環境では、次のコンポーネントが使用されます。 これまで見てきた中で最も単純な形式です。
これは、InterSystems FAQサイトの記事です。
FTPサーバから、アップロード/ダウンロードする方法は以下の通りです。
1. FTPサーバにイメージファイルをアップロードする
set tmpfile="c:\temp\test.jpg"
set ftp=##class(%Net.FtpSession).%New()
// ftp サーバへ接続する
do ftp.Connect("","<ユーザ名>","<パスワード>")
// 転送モードをBINARYに設定
do ftp.Binary()
// アップロードするディレクトリに移動
do ftp.SetDirectory("/temp/upload")
// アップロードするファイルのストリームを用意
set file=##class(%File).%New(tmpfile)
do file.Open("UK\BIN\")
// ファイルをアップロード
// 第1引数: アップロード先に作成するファイル名
// 第2引数: アップロードするファイル・ストリーム
do ftp.Store("test.jpg",file)
// ftp サーバからログアウト
do ftp.Logout()
// ファイルを閉じる
do file.これは、InterSystems FAQサイトの記事です。
InterSystems製品のデータ(テーブルの行データ、オブジェクトのインスタンスデータ)は、グローバル変数に格納されています。
各グローバルのデータサイズは、管理ポータル>システム>構成>ローカルデータベース>グローバルのページから参照したいグローバルのプロパティをクリックし、表示されるグローバル属性ページ上のサイズ計算ボタンをクリックすることで個別のグローバルのサイズを取得することができます。
ネームスペース上のグローバルのデータサイズをまとめて表示するには、ターミナル上で^%GSIZEユーティリティを起動することで取得することができます。
実行方法は以下の通りです。
キーワード: Jupyterノートブック、TensorFlow GPU、Keras、ディープラーニング、MLP、HealthShare
前回の「パート1」では、ディープラーニングデモ環境をセットアップしました。今回「パート2」では、それを使ってできることをテストします。
私と同年代の人の中には、古典的なMLP(多層パーセプトロン)モデルから始めた人がたくさんいます。 直感的であるため、概念的に取り組みやすいからです。
それでは、AI/NNコミュニティの誰もが使用してきた標準的なデモデータを使って、Kerasの「ディープラーニングMLP」を試してみましょう。 いわゆる「教師あり学習」の一種です。 これを実行するのがどんなに簡単かをKerasレベルで見ることにします。
後で、その歴史と、なぜ「ディープラーニング」と呼ばれているのかについて触れることができます。流行語ともいえるこの分野は、実際に最近20年間で進化してきたものです。
HealthShareにも関連しているため、最終的には、少々実現的なユースケースを想像または予測できるようになることを願っています。
次のことを行います。
これは InterSystems FAQ サイトの記事です。
InterSystems製品開始時に、OSの実行ファイルやコマンド、InterSystems製品内に作成したプログラムを実行したい場合は SYSTEM^%ZSTART ルーチンに処理を記述します。
(%ZSTARTルーチンは%SYSネームスペースで作成します)
SYSTEM^%ZSTART に記述する処理は、事前にあらゆる条件下でうまく動作することを確認してください。
^%ZSTART ルーチンの記述ミスや、記述は正しくとも起動時にコマンドが応答を返さなかったり処理でエラーが起こった場合、InterSystems製品が起動できなくなることがあります。
詳しくは、以下ドキュメントをご参照ください。
Python 3をHealthShareにバインディングした深層学習デモキット(パート1) キーワード: Anaconda、Jupyterノートブック、TensorFlow GPU、ディープラーニング、Python 3、HealthShare
この「パート1」では、Python 3をHealthShare 2017.2.1インスタンスにバインドして、「単純」かつ一般的なディープラーニングデモ環境をセットアップする方法を段階的に簡単に説明します。 私は手元にあるWin10ノートパソコンを使用しましたが、このアプローチはMacOSとLinuxでも同じように実装できます。
先週、PYPL Indexにおいて、Pythonが最も人気のある言語としてJavaを超えたことが示されました。 TensorFlowも研究や学術の分野において非常に人気のある強力な計算エンジンです。 HealthShareは、ケア提供者に患者の統一介護記録を提供するデータプラットフォームです。
これらを1つのキットにまとめることはできるでしょうか。また、これを実現する上での最も単純なアプローチは何でしょうか。 ここでは、このトピックの最初のステップを一緒に試してから、次に試すことのできるデモについて検討しましょう。
OData(Open Data Protocol)は、RESTful APIの構築と消費に関する一連のベストプラクティスを定義するISO/IEC認定のOASIS標準です。 ODataは、リクエストとレスポンスのヘッダー、ステータスコード、HTTPメソッド、URL変換、メディアタイプ、ペイロード形式、クエリオプションなどを定義するための多様なアプローチを気にせずに、RESTful APIを構築しながらビジネスロジックに専念するのに役立ちます。 また、ODataには変更の追跡、再利用可能なプロシージャの関数/アクションの定義、および非同期/バッチリクエストの送信に関するガイダンスも提供されています(出典: OData.org)。
これは InterSystems FAQ サイトの記事です。
SELinuxの機能が有効になっているとファイルアクセス時にセキュリティコンテキストのチェックで permission エラーになります。
CSP のページについても同様に permission エラーになっているため、Apache にて 403 Forbidden エラーになります。
以下の設定でSELinuxの機能を無効にすることで回避できます。
設定ファイル /etc/selinux/config の SELINUX=disableに設定し、OS の再起動を行います。
例:
これは InterSystems FAQ サイトの記事です。
設定内容によって、方法が異なります。
システム構成について
管理ポータルの [システム管理] > [構成]
以下の設定については(※1)、パラメータファイル(InterSystems IRISは iris.cpf、Caché/Ensemble/HealthShareは cache.cpf) に格納されます。
このファイルはテキストファイルとなっていますのでこのファイルの一部を他のシステムにコピーして反映させることが可能です。
ただし、ディレクトリ名など各システム固有の情報が多く含まれるため、そのままファイル全体をコピーしても設定内容を反映させることはできません。
(※1) 【Caché/Ensemble2010.2以前】 [システム管理ポータル] > [構成] (システム構成) メニュー以下の設定が対象です。
パラメータ・ファイルの各項目については、以下ドキュメントをご参照ください。
InterSystems パラメータ・ファイル・リファレンスについて【IRIS】 Caché パラメータ・ファイル・リファレンスについて
セキュリティについて
^SECURITY ユーティリティを使用してエクスポート/インポートすることが可能です。
ターミナルを起動し、%SYSネームスペースで以下のコマンドを実行してください。
開発者の皆さん
こんにちは!
普段お世話になっている皆さんへ、うれしいお知らせです!
この度、なんと! 開発者コミュニティのメンバー登録が1万人に達しました! 🎊
インターシステムズはコミュニティの力を信じています。この6年間の皆様のご協力に感謝するとともに、これからもよろしくお願いいたします。
これは InterSystems FAQ サイトの記事です。
タイムアウトを無効にするためには、DSNの設定でクエリタイムアウト無効に設定します。
Windowsコントロールパネル > [管理ツール] > [データソース(ODBC)] > [システムDSN]の構成
で クエリタイムアウト無効 にチェックを入れますと、タイムアウトは無効になります。
アプリケーション側で変更する場合は、ODBC APIレベルで設定することが可能です。
ODBCのSQLSetStmtAttr関数をコールする際に、SQL_ATTR_QUERY_TIMEOUT属性を設定してから、データソースに接続してください。
これは InterSystems FAQ サイトの記事です。
バックアップ先に、共有フォルダを指定することは可能ですが、推奨しません。
バックアップの最終フェーズのDBアクセスを禁止する箇所で万一ネットワークエラー等で、バックアップがハングアップすることがあれば、システム全体に影響が及ぶリスクがあります。
しばらく前、GitHubはGitHub Codespacesという新しい機能を発表しました。 ブラウザでVSCodeを実行する機能があります。マシンでローカルに実行するのとほぼ同じ性能がありますが、クラウドの能力も備わっているため、最大32CPU、64 GB RAMのマシンタイプを選択することが可能です。
.png)
素晴らしいことですね。 でも、このことは、InterSystems IRISで駆動するプロジェクトで作業する上で、どのように役立つのでしょうか。 それをどのように構成するのか見てみましょう。
これは InterSystems FAQ サイトの記事です。
InterSystems製品のプロセスが消費するメモリ領域は以下の6つの領域になります。
プロセスのプライベートな領域
1. プロセスパーティション(ローカル変数テーブル等、プロセスごとに使用するメモリ)
2. 長い文字列(LongString)使用メモリ
3. 文字列スタック...等
プロセス間共有領域
4. データベースキャッシュ
5. ルーチンキャッシュ
6. 共有メモリヒープ(プロセステーブル、ロックテーブル等)
プロセスが使用するメモリ領域は、「プライベート領域」と「共有領域」の大きく2種類に分かれます。
プライベートな領域はそのプロセスのみが使用し、個々のプロセス毎にメモリを割り当てます。
共有領域は、プロセス間で一つのメモリ領域を共有してアクセスしていますので実体はメモリ上に 1つです。
以下それぞれの領域の値は、管理ポータルで指定します(設定可能な場合)。
(1) プロセスパーティションのサイズ
[システム管理] > [構成] > [システム構成] > [メモリと開始設定] > [プロセスあたりの最大メモリ(KB)]
このプロセスパーティションサイズの初期値は 128
IRISインターオペラビリティのメッセージビューワで何かを変更できるとしたら、何を変更しますか?
開発者の皆さん、こんにちは!
この記事では、【GettingStarted with IRIS】シリーズの MQTT アダプタを簡単に試せるサンプルの利用方法についてご紹介します!.png)
(MQTTブローカーはインターネット上に公開されているテスト用ブローカーを利用しています)
サンプルは、こちら👉https://github.com/Intersystems-jp/Samples-MQTT-EKG-Devices (コンテナで動作します)
IRIS/IRIS for Health のバージョン2020.1から、IoT の世界でよく利用される MQTT プロトコルに対応できる MQTT アダプタが追加されました。
MQTTインバウンドアダプタでは、メッセージの Subscribe が行え、MQTTアウトバンドアダプタでは、メッセージの Publish が行えます。
サンプルでは、MQTT を使った遠隔モニタリングをテーマに、患者さんに装着した心電図から心拍数(BPM)をリアルタイムに近い状態で取得し、モニタ画面に患者さん毎の心拍数を表示します(IRIS の MQTT インバウンドアダプタを利用したメッセージの Subscribe をご体験いただけます)。
サンプルでは、演習環境毎にユニークになるようにコンテナ開始時に以下の形式でトピックを作成しています(末尾の # はワイルドカードの指定です)。
/Student_4629/acmeHospital/EKG/#実際に Publish されるトピックは患者さんに装着した心電図のデータになるので、# の部分は、Patient-1 や Patient-2 などのように患者さんを特定できる文字列が入ります。
サンプルのシナリオは、1つの医療機関の患者情報を取得する流れにしています(本来であれば複数の医療機関の患者情報をモニタできるようにしたほうが良いのですがシンプルに試すため、1つの医療機関の患者情報を取得する流れにしています)。
サンプルには1つHTMLファイルが用意されています。このファイルをブラウザで開くと MQTT ブローカーに接続し、データ(心拍数)を1秒ごとにブローカーへ Publish します。
.png)
IRIS は、MQTTブローカーから指定のトピックを Subscribe します。
MQTT ブローカーを Subscribe する設定を行った IRIS のサービスは、ブローカーからトピックを取得します。
実際の設定は以下の通りです。
.png)
受信したトピックは IRIS の中ではメッセージ(EnsLib.MQTT.Message)として扱われ、次のコンポーネントであるプロセス(図では Process_MQTT_Request)に渡します。
.png)
プロセスでは、受信した MQTT 用メッセージからモニタ表示に利用するデータ(Solution.HeartRate)に変換するため、データ変換を呼び出します。
プロセスエディタの開き方と、中で行われているデータ変換の呼び出しの設定を確認する方法は以下の通りです。
.png)
MQTT ブローカーから Subscribe した心拍数をリアルタイムに近い状態で画面表示するため、データ変換で作成された Solution.HeartRate から1秒ごとに患者ごとの心拍数を収集し、画面に表示しています。
.png)
この表示を行うため、1秒間隔で Solution.HeartRate に対するSELECT文が実行されています。
このクエリを実行しているのが、メトリックと呼ぶクラスです。プロダクションでは以下の場所に設定されています。
.png)
メトリックでは、指定の呼び出し間隔で Solution.HeartRate から患者ごとの BPM を収集しています。詳細はソースコードをご参照ください。
この連載の最初の記事では、大きなチャンクのデータをHTTP POSTメソッドのRaw本体から読み取って、それをクラスのストリームクラスとしてデータベースに格納する方法を説明しました。 2つ目の記事では、ファイルとファイル名をJSON形式にラップして送信する方法を説明しました。
それでは、大きなファイルを分割してサーバーに送るという構想を詳しく見ていきましょう。 これを行うために使用できるアプローチにはいくつかあるのですが、 この記事では、Transfer-Encodingヘッダーを使用してチャンク転送を指示する方法を説明します。 Transfer-EncodingヘッダーはHTTP/1.1仕様で導入されたものです。RFC 7230第4.1項では説明されているものの、HTTP/2仕様からはその説明が無くなっています。
開発者の皆さん、こんにちは。
この記事は、FHIRの関連技術として、FHIRプロファイル作成ツールであるSUSHIの使い方を紹介するシリーズの第2弾です。パート2である今回まで半年の期間が経ってしまいました。
前回のパート1では、FHIRとは?FHIRプロファイルとは?FHIR Shorthandとは?そしてSUSHIとはどのようなツールなのか?どのような物を作成できるのか?について、サンプルの成果物のスクリーンショットを交えながら説明しました。
今回の記事では、SUSHIで作成したプロファイルの実際の活用例として、SUSHIを使ってPatientリソースに Extension を追加し、さらにそのExtensionの項目に対する新しい SearchParameter を定義し、IRIS for HealthのFHIR Repositoyで新しいSearchParameterが使えるようになるまで、をご紹介します。
いきなり本筋とそれて恐縮ですが、SUSHIを久しぶりに触る私のような方はSUSHIのアップグレードを行いましょう。 この半年の間もSUSHIは精力的な機能Enhancementが行われており、8月にはversion 2.0.0がリリースされています。この記事の執筆段階の最新バージョンは SUSHI 2.1.1 でした。
開発者の皆さん、こんにちは!
次の InterSystems オンラインプログラミングコンテストが決定しました!
お題は・・・・ 🏆 InterSystems Security Contest 🏆
応募期間は 2021年11月15日~11月28日 です!
💰 賞金総額: $9,450💰
.png)

対象バージョン
2020.1.0以降のInterSystems IRISおよびInterSystems IRIS for Healthのすべてのメジャー・リリースおよびメンテナンス・バージョン
対象プラットフォーム
全て
発生する問題
分散型キャッシュ・クラスタ(ECP 構成) でアプリケーションのロック保証に違反し、アプリケーションの整合性に問題が生じる可能性があります。
問題の詳細
この問題は、データサーバの再起動またはフェイルオーバー後に、アプリケーションサーバがECPリカバリを正常に実行した場合にのみ発生します。
以下のようなケースです。
* ECPリカバリについては、こちらのドキュメントを参照してください。
この連載の第1回目の記事では、「大規模な」チャンクのデータをHTTP POSTメソッドのRaw本体から読み取って、それをクラスのストリームプロパティとしてデータベースに格納する方法について説明しました。 では、そのようなデータとメタデータをJSON形式で格納する方法について見てみましょう。
残念ながら、Advanced REST Clientでは、バイナリーデータをキーの値としてJSONオブジェクトを作成することはできません(もしかすると、私がまだ知らないだけかもしれません)。そこで、サーバーにデータを送信する単純なクライアントをObjectScriptで記述することにしました。
新しいRestTransfer.Clientというクラスを作成し、私のWebサーバーを指定するServer = "localhost"パラメーターとPort = 52773パラメーターをそれに追加しました。 そしてGetLinkクラスメソッドを作成しました。この中で、クラス%Net.HttpRequestの新しいインスタンスを作成し、プロパティを前述のパラメーターに設定します。
実際にPOSTリクエストをサーバーに送信するために、クラスメソッドSendFileDirectを作成しました。
InterSystems IRIS と InterSystems IRIS for Health 2021.1 CommunityEdition の組み込みライセンスが 2021年10月30日で期限切れになるよう誤って設定されていることが判明しました。大変申し訳ありません。
CommunityEdition は開発用途であるため、実稼働バージョンへの影響はありませんが、CommunityEdition のキーが期限を迎えると、ご利用中インスタンスの実行が停止する、または開始できない状況になります。
ご利用を継続いただくためには、新しいインスタンスに置き換えていただく必要があります。インスタンスの置き換えが行えない場合には、ライセンスキーのオーバーライドが行える拡張用キーをご提供しております。
ご不便おかけし、大変申し訳ありません。
インストールキットとコンテナは、WRC software distribution site よりダウンロードいただけます。
バージョン 2021.1 build 215.3 をご利用ください。
拡張キーが含まれる新しいコンテナを、InterSystems Container Registry にご用意いたしました。
以下コマンドで新しいイメージを pull できます。
docker pull containers.
これは InterSystems FAQ サイトの記事です。
TIMESTAMP型はInterSystems製品では、%Library.TimeStampデータタイプ(=%TimeStamp)に対応していて、フォーマットは YYYY-MM-DD HH:MM:SS.nnnnnnnnn です。
小数点以下の精度を変更したい場合は、以下の方法で設定します。
1) システムワイドに設定する
管理ポータル:[システム管理] > [構成] > [SQLとオブジェクトの設定] > [一般SQL設定]
GETDATE(), CURRENT_TIME, CURRENT_TIMESTAMP のデフォルト時刻精度 に 0~9 の範囲で桁数を指定できます。
設定内容の詳細については、下記のドキュメントページをご参照ください。
追加構成設定~ - 一般SQL設定 - SQL タブ
2) SQLの関数で指定する
CURRENT_TIMESTAMP()の引数を利用して、小数点以下の精度を 0~9 の範囲で桁数を指定できます。
※CURRENT_TIMESTAMP()で返される値は、実行環境のタイムゾーンの現在の日付時刻を返します。
InterSystems開発者コミュニティにおいて、CachéアプリケーションへのTWAINインターフェースの作成の可能性に関する質問が上がりました。 Webクライアントの撮像装置からサーバーにデータを取得し、そのデータをデータベースに保管する方法について、素晴らしい提案がいくつかなされました。
しかし、こういった提案を実装するには、Webクライアントからデータベースサーバーにデータを転送し、受信データをクラスプロパティ(または質問のケースで言えばテーブルのセル)に格納できなければなりません。 この方法は、TWAINデバイスから受信した撮像データを転送するためだけでなく、ファイルアーカイブや画像共有などの整理といったほかのタスクにも役立つ可能性があります。
そこで、この記事では主に、HTTP POSTコマンドの本体から、raw状態またはJSON構造にラップしてデータを取得するRESTfulサービスを記述する方法を説明することにします。
具体的な話に入る前に、まずREST全般と、IRISでRESTfulサービスがどのように作成されるかについて簡単に説明しましょう。
Representational state transfer(REST)は、分散ハイパーメディアシステムのためのアーキテクチャスタイルです。
これは、InterSystems FAQサイトの記事です。
$system.SQL.Shell() を使用します。
以下にサンプルを示しますので参考にしてください。
SAMPLES>do $System.SQL.Shell()
SQL Command Line Shell
---------------------------------------------------- The command prefix is currently set to: <>.
Enter q to quit, ? for help.
SAMPLES>>select * from Sample.Vendor
1. select * from Sample.Vendor Vendor Balance Contact DaysClear DiscDays DiscRate LastInvDate LastPayDate MinPayment Name NetDays PayFlag TaxReportingAddress_City Address_State Address_Street Address_Zip
: ※最初の行で何も入力せずにEnterを押すと、複数行入力モードに切り替わります。
USER>d $SYSTEM.SQL.
開発者の皆さん、こんにちは!
InterSystems Interoperability コンテスト 2021 の投票結果が発表されました!
今回も、コーディングコンテストにご興味おもちいただきありがとうございました!
この記事では、コンテスト受賞者を発表します!
受賞された開発者の皆さん、👏おめでとうございます!🎊
InterSystems IRISを初めて使用し始める際には、最低限のセキュリティレベルでのみシステムをインストールするのが通例です。 パスワードを入力する回数が少なくて済むため、初めて作業を始めるときに、開発サービスやWebアプリケーションの操作がより簡単になるからです。 また、開発済みのプロジェクトまたはソリューションをデプロイする際には、最小限のセキュリティを適用している方が便利な場合があります。 それでも、プロジェクトを開発環境から非常に敵対的な可能性のあるインターネット環境に移行する時が来れば、本番環境にデプロイされる前に、最大限のセキュリティ設定(つまり、完全なロックダウン状態)でテストしなければなりません。 これがこの記事の論点です。
InterSystems Caché、Ensemble、およびIRISにおけるDBMSセキュリティ問題をさらに包括的に説明した記事については、私の別の記事、「Recommendations on installing the InterSystems Caché DBMS for a production environment」(本番環境向けにInterSystems Caché DBMS をインストールするための推奨事項)をご覧ください。 InterSystems IRISのセキュリティシステムは、さまざまなカテゴリ(ユーザー、サービス、リソース、特権、およびアプリケーション)に異なるセキュリティ設定を適用する概念に基づいています。
ユーザーにはロールを割り当てることができます。 ユーザーとロールには、データベース、サービス、およびアプリケーションといったリソースに対し、さまざまな読み取り、書き込み、および使用の権限を付与することができます。 ユーザーとロールには、データベースのSQLテーブルに対するSQL特権も与えられます。