2013年06月04日

SQL Server のアカウントロックアウト解除

デフォルトの設定だと、SQL ServerのアカウントにWindowsのパスワード ポリシーが適用されて、パスワードを何度か間違えるとアカウントロックされてしまいます。

解除は別のユーザでログインして、ロックアウト解除してやればいいのですが。。。。

SQL Server Management Studio ではうまく解除できないです。

ロックアウトが発生すると、[セキュリティ]-[ログイン]の該当ユーザのプロパティの[状態]で、

20130603-1.jpg
SQL Server 認証
 □ ログインをロックアウトする(L)

が、チェック状態になります。


このチェックを外すと解除できるとおもいきや、

20130603-2.jpg
「ロックの解除中にログインのパスワードをリセットします。(SqlManagerUI)」

というメッセージが表示されて、OKを押下すると、進行状況に「エラーが発生しました」
が表示されます<なんのエラーか教えてくれよ(つ_T


20130603-3.jpg
解決方法はいろいろあるようですが、一番簡単なのは、

パスワード ポリシーを適用するのチェックを外す

OKを押下して保存

パスワード ポリシーを適用するのチェックを入れる
(※「パスワードの期限を適用するにチェックが入るのでいらないなら外すこと)


これで解除できます。


ま、パスワードは忘れないようにしましょう。


ラベル:SQL Server
posted by しげ at 12:08| Comment(0) | TrackBack(0) | SQL-Server | このブログの読者になる | 更新情報をチェックする

2013年02月05日

変更の追跡機能

SQL Server StandardEdition で、テーブルの変更の監査を行いたいってことで、
「変更の追跡」機能をちょっと調べたのでメモ。

1.データ変更の追跡

大きく2つ方法がある

 a) 変更データキャプチャ

  → トランザクションログを保存しておく機能。
    データ本体が履歴として残ってるので、変更後にコミットしちゃっててもた
    元に戻すことが可能(らしい)。

 b) 変更の追跡
 
  → テーブルにバージョン情報を持たせて、変更操作をバージョン情報を保持する機能。


2.変更の追跡

 (設定方法)
 ・alter table 文でデーターベース、テーブルに対して変更の追跡機能を有効にする。

 (変更の追跡の確認)
 ・変更追跡関数 changetable() で確認可能。

 (追跡可能な操作)
 ・Insert / Update / Delete


変更の追跡で「内部統制」という程ではないにしても、監査っぽいことができないかと
考えたんだけど残念ながらいくつか課題あり。

(課題)
 ・変更日時、変更ユーザーが記録されない。
 ・TRUNCATE による削除、DROPによるテーブル全体削除は追跡できない


そもそも、変更の追跡はテーブルを同期させるため機能らしいので、監査が目的ならEEを買えば
いいんですけどね。
ありきたりですが、テーブルにTrigger仕掛けるますかね。

posted by しげ at 18:20| Comment(0) | TrackBack(0) | SQL-Server | このブログの読者になる | 更新情報をチェックする

2005年12月07日

照合順序

SQL-Serverじゃdefault指定では、「Japanese_CI_AS」という設定(照合順序)になるようです。

大文字小文字区別しないのが、デフォルトでいいのか??>MS。

ALTER TABLE で各列を変更しなくちゃならんやんか。

alter table T_PUB_CONTRACT
alter column hogehoge varchar(20)
collate Japanese_CS_AS_KS_WS;

もー。。。。



※照合順序

CI = 大文字、小文字を区別しない。全角アルファベットの大文字、小文字も区別しない

CS = 大文字、小文字を区別する。全角アルファベットの大文字、小文字も区別する

AI = アクセント、濁音、破裂音を区別しない。

AS = アクセント、濁音、破裂音を区別する。

KS = ひらがなとカタカナを区別する。半角でも区別する

WS = 文字幅を区別する。つまり全角、半角を区別する。
ラベル:SQL-Server
posted by しげ at 00:00| Comment(0) | TrackBack(0) | SQL-Server | このブログの読者になる | 更新情報をチェックする

2005年10月25日

日付の取得

oracle だと、

 select sysdate from dual;

で日付が取得できるけど、

SQLServerだと

 select GetDate()

でOK。

oracle だと sysdate が予約語として設定されてて、これ自体が変数?だけど
SQLServer じゃ、 GetDate という関数を利用する。
ラベル:SQL-Server Oracle SQL
posted by しげ at 00:00| Comment(0) | TrackBack(0) | SQL-Server | このブログの読者になる | 更新情報をチェックする

連番の採番

SQLServerで連番の採番が必要になりました。

Oracleだとsequenceオブジェクトで採番すればいいので、
(空き番を気にしないのであれば)Transactionを意識せず採番できます。

でも、SQLServerだと列にidentity属性を設定した上で、レコードをinsertして始めて
採番されるため、Transactionを考えておかないと重複番号が採番されて
しまいそうな気がします。

どちらがいいのかは、利用目的によって違うのかもしれませんが、
一番いいのは、

 「DBにとって都合がいいような番号体系にする」

ってことのように思います。
posted by しげ at 00:00| Comment(0) | TrackBack(0) | SQL-Server | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。