abc-123のようなハイフンでSQL Serverデータベース名を指定できますか?
select * from abc-123.emp;
のように実行すると、結果が得られるテーブルEmpを作成したという意味で、
abc-123
という名前のSQL Serverデータベースを作成しました。 しかし、私はそれを行うことができないユーザーにいくつかの特権を付与しようとしているときに、
ハイフンの近くに構文エラーが表示されます。
いずれかが私を助けますか?
abc-123のようなハイフンでSQL Serverデータベース名を指定できますか?
select * from abc-123.emp;
のように実行すると、結果が得られるテーブルEmpを作成したという意味で、
abc-123
という名前のSQL Serverデータベースを作成しました。 しかし、私はそれを行うことができないユーザーにいくつかの特権を付与しようとしているときに、
ハイフンの近くに構文エラーが表示されます。
いずれかが私を助けますか?
[](T-SQL)または ""(ANSI SQL)で名前をエスケープしていることを確認してください。標準以外の命名を使用しています。
-- Sample select
SELECT * FROM [abc-123].[dbo].[emp];
SELECT * FROM "abc-123"."dbo"."emp";
1 - 私に許可のTSQLの例を教えてもらえますか? SSMSからアクションを実行する場合は、コードを右クリックしてスクリプトを作成します。
2 - ここにGRANT TSQLコマンドへのリンクがあります。私はあなたが試みているような構文を見ません。
http://technet.microsoft.com/en-us/library/ms188371.aspx
TO 'drupal'@'localhost' IDENTIFIED BY '[email protected]';
まず、それが[[email protected]]
する必要があります。第二に、私はIDENTIFIED BY
節を見たことがありません。その情報をどこから入手していますか?
3 - 悪質な名前のデータベースとユーザーを作成するクイックTSQLスクリプトです。可能であれば、データベースとユーザーの名前を変更します。
また、db_owner以外のテーブルレベル(非常にきめ細かくメンテナンスが多い)で権限を付与する場合は、ユーザー定義のデータベースロールを作成します。役割にセキュリティ保護を追加し、ユーザーを役割に追加します。
http://technet.microsoft.com/en-us/library/ms187936.aspx
サンプルコード。
-- Create new database
create database [abc-123]
go
-- Use new database
use [abc-123];
go
-- Create table from sample data
select
[BusinessEntityID]
,[PersonType]
,[NameStyle]
,[Title]
,[FirstName]
,[MiddleName]
,[LastName]
,[Suffix]
,[EmailPromotion]
, cast([AdditionalContactInfo] as varchar(max))
as [AdditionalContactInfoTxt]
, cast([Demographics] as varchar(max))
as [DemographicsTxt]
,[rowguid]
,[ModifiedDate]
into
[abc-123].[dbo].[emp]
from
AdventureWorks2012.Person.Person;
-- Create a login
CREATE LOGIN [[email protected]] WITH PASSWORD=N'Ja08n13$', DEFAULT_DATABASE=[abc-123]
GO
-- Create a user
CREATE USER [[email protected]] FOR LOGIN [[email protected]] WITH DEFAULT_SCHEMA=[dbo]
GO
-- Add to database owner role
EXEC sp_addrolemember 'db_owner', [[email protected]]
GO
db_ownerグループでユーザーと出力します。
'drupal' @ 'localhost' 'Drup @ l' IDENTIFIED BY;ドリルアップ、削除、作成、削除、インデックス変更、abc-xyz。私はこのようにしています –
abc-xyz。*をALLに変更してください。 –
@CRAFTY、 'schema [dbo]' nameを使用しないと 'Invalid object name'エラーが発生します。 –
あなたがテーブル名とデータベース名を使用している場合は、その後もschema
名を指定すると仮定します。データベース名ラウンド
select * from [abc-123].dbo.emp
使用[]
:
SELECT * FROM [abc-123].[dbo].emp;
OR
SELECT * FROM [abc-123].dbo.emp;
ありがとうございました –
あなたが使用する必要がありますか - ?アンダースコア '_'がより一般的に使用されます。 –