SQL server中CREATE USER语句、存储过程sp_grantdbacces如何使用
时间: 2024-02-20 07:56:21 浏览: 131
CREATE USER语句的语法如下:
```
CREATE USER user_name [ { FOR | FROM } { LOGIN login_name | CERTIFICATE cert_name | ASYMMETRIC KEY asym_key_name } ] [ WITH DEFAULT_SCHEMA = schema_name ]
```
其中:
- user_name:新用户的登录名。
- FOR|FROM:指定用户的创建方式。FOR表示从一个现有的登录名、证书或非对称密钥中创建用户,FROM表示从一个现有的用户中创建另一个用户。
- LOGIN login_name | CERTIFICATE cert_name | ASYMMETRIC KEY asym_key_name:指定用于创建用户的登录名、证书或非对称密钥的名称。
- WITH DEFAULT_SCHEMA = schema_name:指定新用户的默认模式。
例如,要创建一个名为"testuser"的新用户,并使用现有的登录名"testlogin",可以使用以下语句:
```
CREATE USER testuser FOR LOGIN testlogin;
```
要授予该用户对数据库中某个表的SELECT权限,可以使用以下语句:
```
GRANT SELECT ON mytable TO testuser;
```
存储过程sp_grantdbaccess的语法如下:
```
sp_grantdbaccess [ @loginame = ] 'login'
[ , [ @name_in_db = ] 'name_in_db' ]
[ , [ @grpname = ] 'group' ]
[ , [ @denylogin = ] 'denylogin' ]
[ , [ @protect = ] 'protect_option' ]
```
其中:
- @loginame:要添加到数据库中的登录名。
- @name_in_db:在数据库中显示的用户名称。
- @grpname:要将用户添加到的数据库角色。
- @denylogin:指定是否拒绝该用户的登录。
- @protect:指定保护选项。
例如,要将名为"testlogin"的现有登录名添加到数据库中,并将其添加到"db_datareader"角色中,可以使用以下语句:
```
sp_grantdbaccess 'testlogin', 'testuser', 'db_datareader';
```
阅读全文