GlassfishでJDBCセキュリティレルムを設定すると、ユーザーコントロールアクセス(管理者とビューユーザー)を提供するこのリンクが表示されました。ここにこのチュートリアルのリンクがあります。mysqlビューのユーザーと管理者のユーザーの構文の照会
http://jugojava.blogspot.com.eg/2011/02/jdbc-security-realm-with-glassfish-and.html?showComment=1459000091065#c232448315667617784
ガイドで理解できなかったことはほとんどなく、お手伝いできれば幸いです。以下の行はどういう意味ですか? (質問のの終わりに完全なSQLコード)
KEY `fk_users_has_groups_groups1` (`group_id`),
KEY `fk_users_has_groups_users` (`user_id`),
私は、任意のテーブルをuの名前が、コードをuを使用している表示されません。*。一番下のコードには "u"テーブルがありません。しかし、私は内部結合の "u"への参照を参照してください。私は選択することはできますか?このINNER JOINに基づいていますか?
CREATE VIEW `v_user_role` AS
SELECT u.username, u.password, g.group_name
FROM `user_groups` ug
INNER JOIN `users` u ON u.user_id = ug.user_id
INNER JOIN `groups` g ON g.group_id = ug.group_id;
ここ
CREATE TABLE `groups` (
`group_id` int(10) NOT NULL,
`group_name` varchar(20) NOT NULL,
`group_desc` varchar(200) DEFAULT NULL,
PRIMARY KEY (`group_id`)
);
CREATE TABLE `users` (
`user_id` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(10) NOT NULL,
`first_name` varchar(20) DEFAULT NULL,
`middle_name` varchar(20) DEFAULT NULL,
`last_name` varchar(20) DEFAULT NULL,
`password` char(32) NOT NULL,
PRIMARY KEY (`user_id`)
);
CREATE TABLE `user_groups` (
`user_id` int(10) NOT NULL,
`group_id` int(10) NOT NULL,
PRIMARY KEY (`user_id`,`group_id`),
KEY `fk_users_has_groups_groups1` (`group_id`),
KEY `fk_users_has_groups_users` (`user_id`),
CONSTRAINT `fk_groups` FOREIGN KEY (`group_id`) REFERENCES `groups` (`group_id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `fk_users` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
);
CREATE VIEW `v_user_role` AS
SELECT u.username, u.password, g.group_name
FROM `user_groups` ug
INNER JOIN `users` u ON u.user_id = ug.user_id
INNER JOIN `groups` g ON g.group_id = ug.group_id;
INSERT INTO `groups`(`group_id`,`group_name`,`group_desc`) VALUES
(1,'USER','Regular users'),
(2,'ADMIN','Administration users');
INSERT INTO `users`(`user_id`,`username`,`first_name`,`middle_name`,`last_name`,`password`) VALUES
(1,'john','John',NULL,'Doe','6e0b7076126a29d5dfcbd54835387b7b'), /*john123*/
(2,'admin',NULL,NULL,NULL,'21232f297a57a5a743894a0e4a801fc3'); /*admin*/
INSERT INTO `user_groups`(`user_id`,`group_id`) VALUES (1,1),(2,1),(2,2);
エイリアスについては、それは私が疑われたが、私を混乱させているものがSELECT uはuが数行を述べた参照の前にu.usernameなどを選択し、エイリアスを使用していることである何INNER JOINの下にあります。それはできますか? SELECTで参照uを使用し、後で参照するものについて言及してください。この声明を書いた方がいいですか? – Moe
はい、できます。 SQL文を書くときにselectリストがfrom節の前にあるにもかかわらず、selectリストが** from **節の後に評価されることを忘れないでください! – Shadow
ありがとうございました。 – Moe