sql增加登录名不让看到其他数据库
时间: 2024-09-11 13:02:22 浏览: 35
在SQL中,如果您想要为用户增加登录名并且让这个用户只能看到特定的数据库,您需要执行以下步骤:
1. 创建登录名(如果尚未创建)。
2. 创建一个数据库用户,并将其与登录名关联。
3. 为该用户授予对特定数据库的访问权限。
4. 拒绝该用户对其他数据库的访问权限。
以下是在SQL Server中的具体操作步骤,不同数据库系统的语法可能略有不同:
1. 创建登录名:
```sql
CREATE LOGIN [用户名] WITH PASSWORD='密码';
```
2. 创建数据库用户并将登录名映射到该用户:
```sql
USE [数据库名];
CREATE USER [用户名] FOR LOGIN [登录名];
```
3. 授予对特定数据库的访问权限:
```sql
GRANT CONNECT TO [用户名];
```
4. 拒绝对其他数据库的访问权限:
```sql
DENY CONNECT TO [用户名] ON DATABASE::[其他数据库名];
```
通过这些步骤,您就为用户创建了登录名,并且通过授权和拒绝命令限制了用户只能访问指定的数据库。请注意,确保您的数据库配置允许执行这些命令,并且您具有相应的权限。
相关问题
数据库创建登录名的sql语句
创建登录名的 SQL 语句如下所示:
```sql
CREATE LOGIN [login_name] WITH PASSWORD = 'password';
```
其中 `[login_name]` 是要创建的登录名,`password` 是登录名对应的密码。你可以根据需要替换这些值。此外,你还可以为登录名指定其他选项,例如默认数据库、默认语言、检查策略等。具体语法和选项,可以参考相关数据库管理系统的官方文档。
2、数据库的安全管理 (1)创建SQL Server登录名sql_ABC,密码为123456,默认数据库设为自己的数据库。 (2)使用SQL Server登录名sql_ABC在自己数据库中创建数据库用户ABC。 (3)在自己的数据库中创建名为ROLE2的新角色。 (4)将SQL Server登录名创建的数据库用户ABC添加到数据库角色ROLE2中。 (5)将select权限授予role2角色的所有成员,使用户有对表worker的仅有查询权限。 (6)拒绝用户ABC对Salary表的增删查改权限。 (7)从角色role2中删除用户ABC。 (8)删除数据库用户ABC。 (9)删除数据库角色role2。
以下是对应的 SQL Server 命令:
1. 创建 SQL Server 登录名和默认数据库:
```sql
CREATE LOGIN sql_ABC WITH PASSWORD = '123456', DEFAULT_DATABASE = [自己的数据库];
```
2. 创建数据库用户:
```sql
USE [自己的数据库];
CREATE USER ABC FOR LOGIN sql_ABC;
```
3. 创建新角色:
```sql
USE [自己的数据库];
CREATE ROLE ROLE2;
```
4. 将用户添加到角色中:
```sql
USE [自己的数据库];
EXEC sp_addrolemember 'ROLE2', 'ABC';
```
5. 授予查询权限:
```sql
USE [自己的数据库];
GRANT SELECT ON worker TO ROLE2;
```
6. 拒绝对 Salary 表的权限:
```sql
USE [自己的数据库];
DENY ALL ON Salary TO ABC;
```
7. 从角色中删除用户:
```sql
USE [自己的数据库];
EXEC sp_droprolemember 'ROLE2', 'ABC';
```
8. 删除数据库用户:
```sql
USE [自己的数据库];
DROP USER ABC;
```
9. 删除数据库角色:
```sql
USE [自己的数据库];
DROP ROLE ROLE2;
```
阅读全文