2007年12月13日木曜日

[oracle]ユーザーに権限を与える

前回インポートについて書きましたが、DBAのロール権限を持っていないと出来ないことが発覚。
(これに気づくまで約1日かかってました。最初から知ってる人に聞くのが一番って事ですね)

まずはじめに権限を持ってるユーザーでログインします。


ロールをユーザーに付与する
GRANT ロール TO 権限を与えるユーザー名 [IDENTIFIED BY password][WITH ADMIN OPTION];

ロールをユーザーに付与するには、GRANT文で付与するロール名を指定し、TO句で付与するユーザー名を指定します。

IDENTIFIED BY句
IDENTIFIED BY句に続けてパスワードを指定すると、既存ユーザーを明確に識別できます(ユーザーが存在しない場合は新規にユーザーが作成されます)。

WITH ADMIN OPTION句WITH ADMIN OPTION句を指定すると、
  ・ロールがGLOBALロールでない場合、そのロールをほかのロールに付与可能
  ・ロールをほかのロールから取り消すことが可能 
  ・ロールへのアクセスに必要な認可を変更するため、ロールを変更可能 
  ・ロールを削除可能になります。

ということです。

2007年12月11日火曜日

[oracle]dmpファイルのインポートとエクスポート

そんなに項目がないのであればツールなどでSQLを書けばいいんだけれど、かなり大きなモノになると大変なのでdmpファイルにするらしい。

oracle crientがインストールされていることが最低条件です。

dmpファイルの作成方法
DOSプロンプトを開いて
exp ユーザ名/パスワード@設定しているtns file=作ったファイルを置く場所ファイル名 log=ファイルを置く場所作ったファイルに関するログファイル

これでdmpファイルという形でエクスポートされている。

次にインポート
imp ユーザ名/パスワード@設定しているtns file=dmpファイルが置いてある場所ファイル名 log=dmpファイルが置いてある場所作ったファイルに関するログファイル

これでインポートできるはずです。

どうやらバージョンが違うoracleでエクスポートするとインポートできないらしい。

まぁそれ以前に同じバージョンで渡されたdmpファイルがインポートできなかったのでこれであっているかの自信がないです。

[oracle]ユーザーの追加

まずはじめにDOSプロンプトを開いて
sqlplus ユーザー名/パスワード@設定しているtns
と入力しSQLPLUSを開く

SQLPLUSを開いたら
登録したいユーザー名とパスワードを入力する。
create user '登録したいユーザー名' identified by '登録したいパスワード';

権限を与えるために
create role '登録したユーザー名'_ROLE ;
を入力し、権限を与える内容を入力

例)
grant
ALTER PROFILE
,ALTER SESSION
,ALTER SYSTEM
,ALTER TABLESPACE
,ALTER USER
,CREATE PROCEDURE
,CREATE PROFILE
,CREATE PUBLIC SYNONYM
,CREATE ROLE
,CREATE ROLLBACK SEGMENT
,CREATE SEQUENCE
,CREATE SESSION
,CREATE SYNONYM
,CREATE TABLE
,CREATE TABLESPACE
,CREATE TRIGGER
,CREATE VIEW
,EXECUTE ANY PROCEDURE
,SELECT ANY DICTIONARY
,SELECT ANY SEQUENCE
,SELECT ANY TABLEto '登録したユーザー名'_ROLE;

これらの権限を与えるため
grant '登録したユーザー名'_ROLE to '登録したユーザー名' ;


これでユーザーの登録が完了するはず。

2007年11月29日木曜日

[linux]MySQLの文字コード変更方法

どうやらwebサーバとしてMySQLを使う際に文字コードを変更しなければならないらしい。

それも自分で設定ファイルを作成するとのこと。

#vi /etc/my.cnf
これで新規作成する。

その前に現在の設定を確認する。

mysql> status
で確認できます。


mysql> status;
--------------
./mysql Ver 14.12 Distrib 5.0.27, for pc-linux-gnu (i686) using readline 5.0

Connection id: 7110
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: dtdout
Using outfile: ''
Using delimiter: ;
Server version: 5.0.27-Max
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: ujis
Db characterset: ujis
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /tmp/mysql.sock
Uptime: 2 houts 1 min 14 sec

ってな感じになっていると思います。

必ずしも一緒ではないのでご注意。


見てのとおりcharactersetは4種類定義されています。これらを変更するために先ほども書いた設定ファイルを作成します。下記例はEUC-jpに設定しています。
設定する値はSHOW CHARACTER SETで確認できます。

my.cnf

[client]

default-character-set=ujis

[mysqld]

port=3306
default-character-set=ujis

[mysql]
default-character-set=ujis



設定がうまくいったかどうかは、statusで確認してください。

2007年11月22日木曜日

[フリーウェア]CSEでMySQL

Common SQL DeveloperというSQLのかなり優秀なフリーウェアがあるが、oracle接続とかでしか触ってなかったのでMySQLで使ってみようと試みた。

どうやらCSE自体では3以降(?)はODBC接続を行わなければならないらしい。

そんなわけでODBCの設定。

まずはODBCのドライバインストール。

ドライバのインストールだけなので完全インストールである必要はない。

割と早く終わるので終わったら管理ツールにてデータソースの設定。

とりあえずMySQLのODBCを選択して、データソース、ユーザー名、パスワードを入力。

そのほかは空欄でいいはず。

とりあえずこれで設定完了。

後はいつも通りCSE開いて接続してODBC汎用選択して必要事項入力してコネクショーーーン!!


で接続できるはずです。


ん?
なんかいい加減?

2007年11月21日水曜日

[Ruby]簡易掲示板

#! /usr/bin/ruby -Ks
require "rexml/document"
require "open-uri"
require "kconv"
require "cgi"

cgi = CGI.new

# 天気予報
def weather

title = ""
tenki = ""
doc = nil
gaikyou = nil

open('http://weather.livedoor.com/forecast/webservice/rest/v1?city=63&day=tomorrow'){f
doc = REXML::Document.new(f)
}

doc.elements.each("lwws/title"){element
title = element.text.tosjis
}

doc.elements.each("lwws/telop"){element
tenki = element.text.tosjis
}

doc.elements.each("lwws/description"){element
gaikyou = element.text.tosjis
}

puts "#{title}: #{tenki}".tosjis,"\n"
print "\n"
puts "#{gaikyou}".tosjis, "\n"
end

# Webページの表示
print "Content-type: text/html\n\n"
print <





EOF

# プログラム実行
weather

#ヘッダ部出力
print <

EOF

2007年11月19日月曜日

[Linux]Windows上からLinuxのGUIを表示させる vnc

現在業務はWindowsで行ってますが、たまにlinuxを触りたくなるのでそのときいちいちモニタやらを入れ替えるのが面倒です。

なのでwindows上でやれるvncを使います。

vncサーバをlinuxに、vncクライアントをwindowsにそれぞれインストールする必要があります。

linux
「apt-get install vnc vncserver」

vncを起動します。

初回の起動のみパスワードを聞かれます。これは外部PCからアクセスするときに入力するモノです。

「New~~~」と表示されればOKです。

そのままwindowsでvncビューワを実行しても良いのですが、そのままだととても寂しい画面が表示されてしまいます。

実際使うんだったらその画面のまま使いたいですよね?

方法があります。

viエディタを使って「/root/.vnc/xstartup」を編集します。

#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &

export LANG XMODIFIERS="@im=kinput2"
kinput2 -canna -cannaserver localhost &
exec gnome-session &

色の部分を付け足してください。
※「twm & 」をコメントにして「exec gnome-session &」を付け加える

export以下は日本語入力を可能にさせる設定です。

これでwindows上でlinuxのGUIが使えるようになったともいます。