SQL文でデータベースユーザを作成します。

2582 ワード

原文の住所:http://www.sqlstudy.com/sql_articale.php?id=2008061502
SQL Serverデータベース内のデータに成功的にアクセスするには、SQL Serverサーバに接続することを許可する権限を得るために、2つの態様の承認が必要である。二、特定のデータベースにデータをアクセスする権利を得る。仮に、データベースmdbを管理するためにdbaデータベースアカウントを作るつもりです。
1.まずSQL Serverサーバのレベルで登録アカウントを作成します。
create login dba with password='s qlstudy'は、default_database=mydb
アカウント名は「dba」、ログインパスワードは「sqlstudy」、デフォルトで接続されているデータベースは「mdb」です。この時、dbaアカウントはSQL Serverサーバーに接続できます。しかし、この時点ではまだデータベースの対象にアクセスできません。
dbaアカウントをmydbデータベースの中で自分の必要な対象にアクセスできるようにするには、データベースmydbに「データベースユーザ」を作成し、この「データベースユーザ」にいくつかのアクセス権限を与え、登録アカウント「dba」とこの「データベースユーザ」をマッピングする必要があります。慣れてくると、「データベースユーザー」の名前は「登録アカウント」の名前と同じです。「データベースユーザ」の作成とマッピング関係の作成は、ステップだけで完了できます。
2.データベースユーザを作成する(create user):
create user dba for logn dba with default_schema=dbo
データベースユーザーの「dba」を指定するデフォルトのschemaは「dbo」です。これは、ユーザの「dba」が「select*from t」を実行しているという意味で、実際に実行されるのは「select*from dbo.t」です。
3.データベースの役割を加えることで、データベースユーザーに「dba」の権限を与える:
exec sp_addrolember'db_owner,'dba'
この時、dbaはデータベースmdbの対象を全権管理することができます。
SQL Serverにアカウント「dba」を登録したいなら、複数のデータベース、例えばmydb 2にアクセスしてください。次の文はsaに実行させることができます。
use mydb 2
go
create user dba for logn dba with default_schema=dbo
go
exec sp_addrolember'db_owner,'dba'
go
この時、dbaは二つのデータベースmdb、mydb 2の管理権限があります。
4.ログインアカウントを無効にし、有効にします。
alter login dba disable
alter login dba enable
5.登録口座名:
alter login dba with name=dba_tom
ヒント:SQL Server 2005でもsaに名前を変えることができます。『SQL Server 2005セキュリティ強化:スーパーユーザーに名前を変更する』
6.登録口座のパスワードを変更する:
alter login dba with password='s qlstudy.com'
7.データベースユーザー名:
alter user dba with name=dba_tom
8.データベースユーザーのdefult_を変更する。schema:
alter user dba with default_schema=sales
9.データベースユーザの削除:
drop user dba
10.SQL Server登録アカウントを削除する:
drop login dba
 
例:
USE [Slope]
GO

/******   :  Login [slopeuser]        : 10/28/2011 16:10:16 ******/
IF  EXISTS (SELECT * FROM sys.server_principals WHERE name = N'slopeuser')
DROP LOGIN [slopeuser]

/******   :  User [slopeuser]        : 10/28/2011 16:10:53 ******/
IF  EXISTS (SELECT * FROM sys.database_principals WHERE name = N'slopeuser')
DROP USER [slopeuser]

/******        、         ******/
create login slopeuser with password='admin888', default_database=slope

/******                   schema ******/
create user slopeuser for login slopeuser with default_schema=dbo

/******                ******/
exec sp_addrolemember 'db_owner', 'slopeuser'

GO