當前位置:首頁 » 編程語言 » serversqlselect許可權
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

serversqlselect許可權

發布時間: 2022-08-23 18:50:54

A. 如何在sql Server中定義用戶的查詢許可權,如用戶一次必須查詢多餘10個記錄的統計值

1、--創建SQL Server登錄名
use master
go
exec sp_addlogin'user1','password','BookManagement'
go
--創建資料庫用戶
use BookManagement
go
create USER user1 for login user1
2、驗證連接
在ssms中,選擇「文件」-->「新建」-->「資料庫引擎查詢」命令,在對話框中,選擇「SQL Server 身份驗證」選項,然後輸入登錄名(user1)和密碼,然後點擊「連接」
3、設置對象許可權
(解釋:grant permission[,...n]
on object to <database_principal>[,...n]
with grant optoin
permission 設置對象的許可權。可以指定的許可權包括:select。insert、update、delete)
use BookManagement
go
grant select

on dbo.Authors to user1
4、
(1)新建登錄名(user2) 設置密碼,設置默認資料庫'BookManagement'
(2)選擇『用戶映射』選項,『映射到此登錄名的用戶』區域選中'BookManagement'資料庫,下面選「public」
(3)在』user2『點開屬性,添加』選擇對象『-->「特定對象」
(4)對象類型中,選』表『;對象名稱』資料庫用戶-user2『
(5)設置許可權,選』select『,確定就好了

B. sqlserver2005資料庫 如何新建一個用戶讓他對伺服器上的所有庫都只有select許可權,或者是只能操作視圖也行

1. SQL資料庫分配許可權
打開SQL-Server管理工具安全性登陸名右鍵(新建登陸名)

輸入相應的信息(這里要去掉強制實施密碼策略,強制密碼過期,用戶在下次登錄時必須修改密碼的選擇)

用戶映射選擇我們要設置許可權的資料庫通過選擇資料庫角色成員身份來設置新建用戶的許可權

一般對整個庫做許可權的時候都是需要所有許可權勾選db_owner就可以了(確定)
這樣就可以用我們新建的這個用戶名來訪問我們的資料庫伺服器了,而且這個用戶名只擁有我們所勾選的資料庫的所有許可權。

2. SQL資料庫對每個表分配許可權

打開SQL-Server管理工具安全性登陸名右鍵(新建登陸名)

輸入相應的信息(這里要去掉強制實施密碼策略,強制密碼過期,用戶在下次登錄時必須修改密碼的選擇)

用戶映射選擇我們要設置許可權的資料庫通過選擇資料庫角色成員身份來設置新建用戶的許可權

因為我們要對每個表進行單獨的設置所以這里我們就不勾選db_owner了

打開我們剛才勾選的test資料庫安全性用戶中看到我們剛才新建的那個用戶了。

找到新建的用戶名右鍵屬性

安全對像

添加

特定類型的所有對象確定

對象類型選擇表

確定這樣我們就能看到test資料庫中的所有表了

接著我們再對每個表設置許可權

我對兩個表都是設置的Select許可權確定這樣我們用test_name登陸test資料庫的時候只能對其中的兩個表做Select操作不能做其它操作

C. SQL Server用戶許可權問題

創建角色,用戶,許可權/*--示例說明 示例在資料庫pubs中創建一個擁有表jobs的所有許可權、擁有表titles的SELECT許可權的角色r_test 隨後創建了一個登錄l_test,然後在資料庫pubs中為登錄l_test創建了用戶賬戶u_test 同時將用戶賬戶u_test添加到角色r_test中,使其通過許可權繼承獲取了與角色r_test一樣的許可權 最後使用DENY語句拒絕了用戶賬戶u_test對表titles的SELECT許可權。 經過這樣的處理,使用l_test登錄SQL Server實例後,它只具有表jobs的所有許可權。--*/USE pubs--創建角色 r_testEXEC sp_addrole 'r_test'--授予 r_test 對 jobs 表的所有許可權GRANT ALL ON jobs TO r_test--授予角色 r_test 對 titles 表的 SELECT 許可權GRANT SELECT ON titles TO r_test--添加登錄 l_test,設置密碼為pwd,默認資料庫為pubsEXEC sp_addlogin 'l_test','pwd','pubs'--為登錄 l_test 在資料庫 pubs 中添加安全賬戶 u_testEXEC sp_grantdbaccess 'l_test','u_test'--添加 u_test 為角色 r_test 的成員EXEC sp_addrolemember 'r_test','u_test'--拒絕安全賬戶 u_test 對 titles 表的 SELECT 許可權DENY SELECT ON titles TO u_test/*--完成上述步驟後,用 l_test 登錄,可以對jobs表進行所有操作,但無法對titles表查詢,雖然角色 r_test 有titles表的select許可權,但已經在安全賬戶中明確拒絕了對titles的select許可權,所以l_test無titles表的select許可權--*/--從資料庫 pubs 中刪除安全賬戶EXEC sp_revokedbaccess 'u_test'--刪除登錄 l_testEXEC sp_droplogin 'l_test'--刪除角色 r_testEXEC sp_droprole 'r_test'

D. SQL server 2008 許可權

對於不想讓某一用戶(如user1)查看錶(如 table j)直接在定義該用戶時不授予select on j 的許可權,若已經授予了可用下面SQL語句解決: revoke select on j(注意在SQL2008中是 on j ,若on table j就出錯) from user1 同樣的,授予user1對表j 的添加(insert)或刪除(delete)或修改(update)許可權即可,已insert 為例: grant insert on j to user1 另外,只能是資料庫的超級用戶sa或是對表j擁有添加(insert)或刪除(delete)或修改(update)許可權的一般用戶才能授權給user1,而對於收回user1的許可權一般由資料庫的超級用戶sa或已將許可權授予user1的用戶。

E. mssql中select許可權的問題

試一下用
myrecord=cn.execute("select * from s_user")

F. 關於SQL server資料庫表中各許可權的具體意思

表 table1
id name
1 張三
2 李四
----------------------
select:查詢
用法:
select * from table1
select * from table1 where name='張三'
select * from table1 where id=1
insert:插入
用法:
insert into table1(name) values('王五')
update:更新
用法:
update table1 set name='張XX' where name ='張三'

delete:刪除
用法:
delete from table1 where name ='李四'
delete from table1

EXEC :
這是嵌入SQL的語法,比如EC就是在C語言裡面增加SQL功能的,除了可以使用所有標準的C語言語法以外,可以使用EXEC SQL(或者$符號)開始的一行書寫SQL語句。

EXEC SQL include sqlca
包含一個文件,類似C、ASP的include語句,把那個文件sqlca的內容包含到當前位置

EXEC SQL BEGIN DECLARE SECTION
開始申明,下面的一段語句將是SQL系統的變數申明語句

EXEC SQL END DECLARE SECTION
申明語句結束

G. SQL Server如何去掉某個用戶的select * 許可權

  1. 首先進入資料庫級別的【安全性】-【登錄名】-【新建登錄名】



  2. H. SQL中SELECT許可權

    因為dbo資料庫所有者沒有賦給你select的許可權呀
    登陸sa:
    use 當前資料庫名
    go
    grant select for 你想個許可權的登陸名 on 要讓查詢的表名

    I. sql server 拒絕了select許可權

    建議你這樣試試看:

    1. 查看登錄的資料庫用戶是否具備select許可權
    2. 登錄sa賬號來進行select

    J. sql語句server中怎麼查詢用戶的角色和許可權

    SQL Server中查詢用戶的對象許可權和角色的方法

    -- 查詢用戶的object許可權
    exec sp_helprotect NULL, 'UserName'
    -- 查詢用戶擁有的role
    exec sp_helpuser 'UserName'
    -- 查詢哪些用戶擁有指定的系統role
    exec sp_helpsrvrolemember 'sysadmin'
    -- 可查詢嵌套role
    WITH tree_roles as
    (
    SELECT role_principal_id, member_principal_id
    FROM sys.database_role_members
    WHERE member_principal_id = USER_ID('UserName')
    UNION ALL
    SELECT c.role_principal_id,c.member_principal_id
    FROM sys.database_role_members as c
    inner join tree_roles
    on tree_roles.member_principal_id = c.role_principal_id
    )
    SELECT distinct USER_NAME(role_principal_id) RoleName
    FROM tree_roles

    -- 其他許可權相關基本表
    select * from sysusers
    select * from syspermissions

    -- Who has access to my SQL Server instance?
    SELECT
    name as UserName, type_desc as UserType, is_disabled as IsDisabled
    FROM sys.server_principals
    where type_desc in('WINDOWS_LOGIN', 'SQL_LOGIN')
    order by UserType, name, IsDisabled

    -- Who has access to my Databases?
    SELECT
    dp.name as UserName, dp.type_desc as UserType, sp.name as LoginName, sp.type_desc as LoginType
    FROM sys.database_principals dp
    JOIN sys.server_principals sp ON dp.principal_id = sp.principal_id
    order by UserType

    select * from sys.database_principals

    -- Server Roles
    select
    p.name as UserName, p.type_desc as UserType, pp.name as ServerRoleName, pp.type_desc as ServerRoleType
    from sys.server_role_members roles
    join sys.server_principals p on roles.member_principal_id = p.principal_id
    join sys.server_principals pp on roles.role_principal_id = pp.principal_id
    where pp.name in('sysadmin')
    order by ServerRoleName, UserName

    -- Database Roles
    SELECT
    p.name as UserName, p.type_desc as UserType, pp.name as DBRoleName, pp.type_desc as DBRoleType, pp.is_fixed_role as IfFixedRole
    FROM sys.database_role_members roles
    JOIN sys.database_principals p ON roles.member_principal_id = p.principal_id
    JOIN sys.database_principals pp ON roles.role_principal_id = pp.principal_id
    where pp.name in('db_owner', 'db_datawriter')

    -- What can these users do?
    SELECT
    grantor.name as GrantorName, dp.state_desc as StateDesc, dp.class_desc as ClassDesc, dp.permission_name as PermissionName ,
    OBJECT_NAME(major_id) as ObjectName, GranteeName = grantee.name
    FROM sys.database_permissions dp
    JOIN sys.database_principals grantee on dp.grantee_principal_id = grantee.principal_id
    JOIN sys.database_principals grantor on dp.grantor_principal_id = grantor.principal_id
    where permission_name like '%UPDATE%'